Probleme mit Konstanten und Stringverkettung

Status
Nicht offen für weitere Antworten.

Tokka

Mitglied
Hallo zusammen

in Meiner Anwendung (Kartenspiel) greift meine GUI auf die Grafiken für die Karten mit folgender Methode
zurück:

Code:
.getResource("/pictures/He_Bube.jpg")

Ich möchte nun den Pfad zu den Bildern in einer Konstante hinterlegen, damit ich an zentraler stelle den Pfad ändern kann.
Dazu habe ich mir folgendermassen eine Konstante in meiner Ressourcen Klasse angelegt:

Code:
final static String PICTUREPATH = "/pictures/";

Wenn ich nun im Code die Methode aufrufe

Code:
getResource(Ressources.PICTUREPATH + "He_Bube.jpg"

Werden die Bilder nicht mehr geladen.

Laut

Code:
System.out.println(Ressources.PICTUREPATH + "He_Bube.jpg");

Wird mir /pictures/He_Bube.jpg zurückgegeben.

Kann mir jemand sagen, woran das liegt, dass die Bilder nicht geladen werden?????


Vielen Dank

Gruß
Tokka
 
hm folgendermassen funzts bei mir:

Code:
import javax.swing.*;

public class PicturesLoad extends JFrame {
	
	public PicturesLoad() {
		getContentPane().add(new JLabel(new ImageIcon(Name.PATH + "/*name des Bildes*/")));
		pack();
	}
	public static void main(String [] args) {
		new PicturesLoad().setVisible(true);
	}
}

class Name {
	static String PATH = "./images/";
}

Vielleicht hats sonst mit was zu tun, mit getResource(); ?
Kanns ja mal versuchen, Ressources.PICTUREPATH und "He_Bube.jpg" vorher zu verknüpfen und dann der Methode zu übergeben :-S
 
Danke für die Antwort,
leider konnte ich mein Problem noch nicht lösen.


Vielleicht hat noch jemand eine idee??
 
moin,

wenn du schon den path in der variablen hast, dann brauchst du doch nicht nochmal getResource() aufzurufen. denke mal da liegt der fehler.

Code:
getResource(Ressources.PICTUREPATH + "He_Bube.jpg"
 
Das Visual-EP generiert mir folgenden Code

Code:
jbDealerS.setIcon(new ImageIcon(getClass().getResource("/pictures/Herz_Bube.jpg")));

Ich habe beide Vorschläge nochmal versucht, aber es geht leider nicht.


Gruß
Tokka
 
habs mal getestet so funzt es bei mir.

Code:
import javax.swing.*;
import java.awt.*;

public class MyJFrame extends JFrame{

	private static String PATH;

     public MyJFrame(){
      	PATH = getClass().getResource("bilder/").toString();
          PATH = PATH.replace("%20"," "); // entfernt die "%20" die bei leerzeichen entstehen z.B.C:\Dokumente%20und%20Einstellungen
          PATH = PATH.substring(6,PATH.length()); // entfernt das " file:/ "

          setPreferredSize(new Dimension(600,500));
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

          //add(new JLabel(new ImageIcon(getClass().getResource("./bilder/bild.jpg")))); -- geht auch so
          add(new JLabel(new ImageIcon(PATH + "bild.jpg"))); //oder halt so

          pack();
          setVisible(true);
     }

     public static void main(String[] args){
     	new MyJFrame();
     }
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben