[Frage] Bilder in Java

01/08/2016 17:23 TheRealLenon#1
Hallo liebe Community,

ich habe ein kleines Programm in Java geschrieben. Das Programm funktioniert an sich einwandfrei.

Ich habe lediglich nur ein kleines "Problem" mit Bildern, wenn ich das Programm außerhalb von Eclipse starte.

Code:
ImageIcon ico = new ImageIcon("src/pic/metin2logo.png");
		ico.setImage(ico.getImage().getScaledInstance(300, 190, Image.SCALE_DEFAULT));
		JLabel label = new JLabel(ico);
		label.setBounds(122, 16, 365, 191);
		label.setVisible(true);
		frame.getContentPane().add(label);
		frame.setVisible(true);
Nun habe ich folgendes Problem. Ich habe mein Projekt, als Jar-File exportiert. Ich habe in meinem src Ordner ein package "pic" angelegt, wo die ganzen Bilder enthalten sind. Nun ja jetzt habe ich dem Programm mit JSmooth eine .exe zugewiesen und das Programm startet einwandfrei.

Doch nun zeigt es mir die Bidler nicht mehr an. Habt ihr da einen Tipp für mich? :)
01/09/2016 02:25 algernong#2
Was fuer eine Exception bekommst du? Bild wird nicht gefunden?

Gib dir einmal (new File("src/pic/metin2logo.png").getAbsolutePath()) aus. Dann siehst so, wieso er das Bild nicht dort findet, wo er sucht.

Wenn das Bild immer das selbe ist kannst du das auch in die JAR mit reinpacken und mit new ImageIcon(getClass().getResource("pic/metin2logo.png")) laden.
01/10/2016 14:20 hazejp#3
Quote:
Originally Posted by algernong View Post
Was fuer eine Exception bekommst du? Bild wird nicht gefunden?

Gib dir einmal (new File("src/pic/metin2logo.png").getAbsolutePath()) aus. Dann siehst so, wieso er das Bild nicht dort findet, wo er sucht.

Wenn das Bild immer das selbe ist kannst du das auch in die JAR mit reinpacken und mit new ImageIcon(getClass().getResource("pic/metin2logo.png")) laden.
Vor "pic" sollte noch ein Slash stehen, um die oberste Ebene des Classpaths anzugeben, sofern der Resourcenornder in dieser liegt (was durchaus Sinn ergäbe). Alternativ kann man jene Resourcen getrost mit dem aktuellen ClassLoader laden.