Swing Weiß jemand, warum dieses Programm nicht funktioniert?

steven789hjk543

Aktives Mitglied
Code:
import javax.swing.JFrame;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import java.awt.Container;

class ShowPicture {
    
    public static void main(String args[]) {
        JFrame frame = new JFrame();
        ImageIcon icon = new ImageIcon("j2fd.jpg");
        JLabel label = new JLabel(icon);
        Container contentPane = frame.getContentPane();
        
        contentPane.add(label);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}

Habe ich aus dem Buch “Java für dummies“. Bei eclipse erscheint nur ein Kästchen ohne Bild.
 
Versuch mal, den absoluten Pfad zum Bild zu verwenden oder ihn dir zumindest ausgeben zu lassen, um zu sehen, ob es auch dort ist, wo Java es vermutet
System.out.println(new File("j2fd.jpg").getAbsolutePath());
 
Wo hast du das Bild abgelegt? Hast du das Bild per Betriebssystem Explorer reinkopiert oder direkt über Eclipse. Ich vermute mal, dass das Bild noch nicht im Bin Verzeichnis abgelegt ist.
 
Nein so wars nicht gemeint. Wenn du über Eclipse das Bild reinkopierst, dann wird beim Kopilieren automatisch in das Bin Verzeichnis kopiert. Wenn du im Explorer machst, dann checkt das Eclipse nicht.
Solange das Bild am Ende im gleichen Ordner landet, sollte doch völlig egal sein, wie das dorthin gekommen ist? 😵
(Es sollte halt nur nicht in den bin-Ordner...)
 
Solange das Bild am Ende im gleichen Ordner landet, sollte doch völlig egal sein, wie das dorthin gekommen ist? 😵
(Es sollte halt nur nicht in den bin-Ordner...)
Ich weiss nur bei mir ist es zumindest immer so, wenn ich irgendwelche Icons zum Beispiel von Icon8 direkt in das Source Verzeichnis runterlade außerhalb von Eclipse, ist das Bild sozusagen noch nicht im Classpath und kann nicht aufgelöst werden. Erst beim Refreshen des Projektes (Bild wird in Bin Verzeichnis kopiert) ist das Bild vorhanden.

Wenn man die Java Anwendung in Eclipse starte, ruft der doch die kompilierten Klassen im Bin Verzeichnis, d.h. in dem Fall müssen die Bilder auch im Bin sein. Ist meine Annahme.
 

Zurück
Oben