• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Zufallsbild mit Java

C64

Kaiser Alexander
Registriert
12.04.06
Beiträge
3.957
Hallo,
ich beginne gerade mit ein wenig mit Java. Ich hab für mein Problem schon Google befragt, aber auch dort keine Lösung gefunden.
Ich habe einen Ordner XY mit Bild1.jpg, Bild2.jpg ...
Ich möchte nun mit Java ein Zufallsbild aus diesem Ordner anzeigen lassen.
Ich habe eine Lösung gefunden (die is noch mit Links, was ich dann auch noch rausnehmen möchte), bei der ich aber jedes Bild einzeln eingeben muss.

<script language="JavaScript">
<!--

function random_imglink(){
var myimages=new Array()
//specify random images below. You can have as many as you wish
myimages[1]="http://www.henkvrieselaar.nl/flowers/bloem1.jpg"
myimages[2]="http://www.henkvrieselaar.nl/flowers/bloem2.jpg"
myimages[3]="http://www.henkvrieselaar.nl/flowers/bloem3.jpg"
myimages[4]="http://www.henkvrieselaar.nl/flowers/bloem4.jpg"
myimages[5]="http://www.henkvrieselaar.nl/flowers/bloem5.jpg"


//specify corresponding links below
var imagelinks=new Array()
imagelinks[1]="http://www.realmacsoftware.com"
imagelinks[2]="http://www.apple.com"
imagelinks[3]="http://www.yourhead.com"
imagelinks[4]="http://www.cnn.com"
imagelinks[5]="http://www.henkvrieselaar.nl"

var ry=Math.floor(Math.random()*myimages.length)

if (ry==0)
ry=1
document.write('<a href='+'"'+imagelinks[ry]+'"'+'><img src="'+myimages[ry]+'" border=0></a>')
}

random_imglink()
//-->
</script>

Ich hätte gerne eine Lösung, bei der ich sage, der Link ist bis zum Ordner "/XY/bild" dann +Zufallszahl+".jpg". Gibt es nicht eine so kurze und einfache Möglichkeit?
Optimal (weiß nicht ob das mit Java geht) wäre, wenn mir das Skript zusätzlich die Anzahl der vorhanden Objekte im Ordner XY abfragt und dies in die Zufallszahl mit einbezieht.
 

lar_zzz

Bismarckapfel
Registriert
11.08.07
Beiträge
77
so würde ich es versuchen:

randomIMG = function(){
var pfad = "xy/xy/";​
var anzahl = 10; // 10 Bilder vorhanden​
for(var i=1; i < anzahl+1; i++){​
imgArray = pfad + 'bild' + i + '.jpg';

}​
var ry=Math.floor(Math.random()*imgArray.length);​
if (ry==0) ry=1;​
document.write('<img src="'+imgArray[ry]+'" border=0/>');​
}

oder:

randomIMG = function(){
var pfad = "xy/xy/";​
var anzahl = 10; // 10 Bilder vorhanden​
var ry=Math.floor(Math.random()*anzahl);​
if (ry==0) ry=1;​
document.write('<img src="'+pfad+imgArray[ry]+'.jpg" border=0/>');​
}

-----------------------------------------------------------------------
Javascript != Java ;)

ich denke nicht das man mit javascript in den ordner gucken kann um zu sehen wie viele bilder voranden sind. wenn ja, wärs schon zu wissen wie :p

nun gut ich hoffe es ist ein ansatz für dich und ich konnte weiterhelfen.

Gruss, lar_zzz
 
Zuletzt bearbeitet:
  • Like
Reaktionen: C64

Chu

Martini
Registriert
15.06.07
Beiträge
658
so läuft es die bilder in einer schleife während des betrachtens durch (solltest alle bilder auf diesselbe größe skaliert haben)
<!--
var b = new Array();
for(i=0;i <= 15;i++){
b = new Image(); b.src = 'bilder/' + (i+1) + '.jpg';
}
var i = 0;
function app()
{
if (i == (b.length-1))
{
i = 0;
}
else
{
i++;
}
document.images.picz.src = b.src;
setTimeout("app()",1000)
return i;
}
window.setTimeout("app()",1000)
//-->


oder so

var i = 17; //anzahl der bilder
bildNr = Math.round(Math.random()*i+1);

document.writeln("<img src='ordner1/ordner2/"+bildNr+"'.jpg></img");
 
  • Like
Reaktionen: C64

C64

Kaiser Alexander
Registriert
12.04.06
Beiträge
3.957
Vielen Dank ihr beide, für eure Antworten!

Ich verstehe eigentlich beide Skripte, aber es will in der Seitenleiste von RapidWeaver einfach nicht funktioniereno_O

Ich folgendes in der Seitenleiste stehen (***ist der Link bis zum Bild):
Ich bekomme aber kein Bild angezeigt.... hab ich noch was wichtiges für Java vergessen?
<!--

var b = new Array();
for(i=0;i <= 80;i++){
b = new Image(); b.src = 'http://www.***/Bild' + (i+1) + '.jpg';
}
var i = 0;
function app()
{
if (i == (b.length-1))
{
i = 0;
}
else
{
i++;
}
document.images.picz.src = b.src;
setTimeout("app()",1000)
return i;
}
window.setTimeout("app()",1000)

//-->


Der andere Versuch funktioniert so auch nicht:(
<!--

randomIMG = function(){
var pfad = "http://www.***/";
var anzahl = 152;
for(var i=1; i < anzahl+1; i++){
imgArray = pfad + 'Bild' + i + '.jpg';
}
var ry=Math.floor(Math.random()*imgArray.length);
if (ry==0) ry=1;
document.write('<img src="'+imgArray[ry]+'" border=0/>');
}

//-->
 
Zuletzt bearbeitet:

C64

Kaiser Alexander
Registriert
12.04.06
Beiträge
3.957
PS: Ich habe es auch mal mit <script language="JavaScript"> </script> eingeschlossen, auch wenn ich glaube, dass das bei RW nicht notwendig isto_O
 

Chu

Martini
Registriert
15.06.07
Beiträge
658
<img name="picz"></img>

das musst du bei meinem ersten script als name verwenden für das img damit sich das script darauf beziehen kann


wenn nicht probier nochmal das:


var i = 17; //anzahl der bilder

bildNr = Math.round(Math.random()*i+1);


document.writeln("<img src='ordner1/ordner2/"+bildNr+"'.jpg></img");

da sparst du dir das einfügen von arrays und dergleichen ;)
 

C64

Kaiser Alexander
Registriert
12.04.06
Beiträge
3.957
<img name="picz"></img>

das musst du bei meinem ersten script als name verwenden für das img damit sich das script darauf beziehen kann


wenn nicht probier nochmal das:


var i = 17; //anzahl der bilder

bildNr = Math.round(Math.random()*i+1);


document.writeln("<img src='ordner1/ordner2/"+bildNr+"'.jpg></img");

da sparst du dir das einfügen von arrays und dergleichen ;)

:eek: Magst du mir das Skript umgemodelt posten... bin noch sehr unbeleckt, was Java angeht. Ich verstehe zwar die Schritte, aber ich bin noch nicht so weit, dass ich selbst etwas effektiv zusammenbring (gestern angefangen);)

Ich hab mir mal die Fehlermeldungen in RW angeschaut (kommt nur wenn ich das Skript mit <script>... umschließe):
Warning: <script> inserting "type" attribute
 

Nogger

Damasonrenette
Registriert
05.11.05
Beiträge
494
Javascript hat mit Java nur einen Teil des Namens gemeinsam, mehr nicht.

Die Warnung bekommst du, weil ein script-Tag ein type-Attribut braucht. Du hast da ein language-Attribut, das es seit Ewigkeiten nicht mehr gibt.

<script type="text/javascript">...</script>

Die "<!--" und "//-->" am Anfang und Ende sind auch unnütz.
 
  • Like
Reaktionen: C64

Chu

Martini
Registriert
15.06.07
Beiträge
658
wie nogger schon sagt musst du, wenn du das script ins document einbauen möchtest, diese attribute setzen

es gibt die möglichkeit mit type oder auch url wenn du es in ein externes .js packst :)