Anfängersorgen: .jar und die Bilder ...

Grogmo

Grünschnabel
Heya,
ich habe hier schon einige Themen zu meinem Problem gesehen und alles ausprobiert, was da an Tipps angegeben wurde.
Nichts läuft bei mir.
Also, mein Problem:
Ich habe ein Kniffelprogramm geschrieben, um nach fast 10 Jahren Programmierpause überhaupt wieder Fuß zu fassen.
Zum ersten mal mit Java. Vorher hatte ich nur C benutzt.
Mit Eclipse als Editor und in Eclipse läuft das Programm bestens.
auch als exportiertes lauffähiges Jar Archiv funktioniert das Programm, nur werden die Bilder nicht angezeigt. Sie sind aber im jar archiv vorhanden, das habe ich überprüft.

mein code zum aufrufen der bilder:

Code:
public void grafiksetzen(){
		
		for (int i=0;i<5;i++){
			if (spieler.Resultate(i)==1){
				jBtnWuerfel[i].setIcon(new ImageIcon(getClass().getClassLoader().getResource("KniffelGui"+ File.separator +"w6-1.jpg")));		
			}

ich habe eben 5 buttons in einem array, für jeden würfel einen ;) und in der schleife wird dem würfelergebnis entsprechend das richtige bild zugewiesen, weil mir eine einfache zahlenausgabe zu langweilig war.

ich habe das ganze auch schon mit (this.getClass.....) ausprobiert und mit URL Verweis, ganz, wie es hier in den bisherigen Threads beschrieben wurde ... aber geht auch alles nicht.
Bin nun etwas gefrustet und hoffe, dass klappt doch noch irgendwie :(

Gruß, Grogmo
 
Warum nutzt du "File.seprator"?
Wenn du dein Programm unter Windows laufen lässt, ist "File.separator" das Zeichen '\', was jedoch in URLs (oder innerhalb eines jar-Archives) nicht akzeptiert wird (es wird das Zeichen '/' erwartet).
Wie ich deinen Code lese, liegt dein Bild ("w6-1.jpg"), sowohl in der Ordnerstruktur, als auch im jar-Archiv, im Paket "KniffelGui", dann müsste dein Code jedoch so lauten:
Java:
public void grafiksetzen(){
        
        for (int i=0;i<5;i++){
            if (spieler.Resultate(i)==1){
                jBtnWuerfel[i].setIcon(new ImageIcon(getClass().getClassLoader().getResource("KniffelGui/w6-1.jpg")));       
            }

Edit: es reicht
Java:
getClass().getResource("KniffelGui/w6-1.jpg")
zu verwenden.
 
Zuletzt bearbeitet:
oh vielen Dank. Das war tatsächlich des Rätsels Lösung.
Den File.Seperator hatte ich genommen, weil mir erklärt wurde, dass man den für die Plattformunabhängigkeit nehmen muss :(
Da wäre ich im Leben nicht allein drauf gekommen :D
 
Zurück