JFrame Bild einfügen

MisterInc

Mitglied
Hey Leute!

Ich habe eben dieses Problem:
Ich habe ein JFrame erstellt und einfach einen Button eingefügt.
Dann lade ich das Bild und adde es dem Frame.
Ich habe danach die Sichtbarkeit auf true gestellt.

Das hab ich alles in einem try-catch stehen.

Wen ich jetzt das Programm starte und auf den Button drücke, kommt keine Fehlermeldung (angenommen ich ändere den Pfad des Bildes, kommt ein Fehler, da dort kein Bild ist. Logischerweise, sag ich nur, damit ihr wisst, dass das soweit funktioniert.)

Im Frame wird aber einfach kein Bild angezeigt.

Hier noch der Code :
Java:
try { 
      Image image = ImageIO.read(new FileInputStream("Bilder/demo.png")) ;
         
      JLabel imageLabel= new JLabel(new ImageIcon(image));  
      imageLabel.setBounds(0, 0, 10, 10);
      add(imageLabel);
      imageLabel.setVisible(true);
    } catch(Exception e) {
      JOptionPane.showMessageDialog(this, "Fehler" + "\n" + e);
    }
.
 
Java:
Image image = ImageIO.read(new FileInputStream("Bilder/demo.png")) ;

richtig wäre eigentlich

Java:
BufferedImage image = ImageIO.read(new FileInputStream(new File("H:/Bilder/demo.png")));

dein Pfad ist nicht absolut, ausserdem erwartet der File inputStream ein File Objekt. falls dein Bild nicht in einem Resource Ordner liegt musst du immer den vollständigen Pfad zur datei angeben.

wenn deine Grafik in einem Resource Ordner in deinem Workspace / Projekt liegen sollte nutze die möglichkeit diese als Resource zu laden

Java:
BufferedImage image = ImageIO.read(getClass().getResourceAsStream("/bilder/demo.png"));

EDIT : Normalerweise müsste bei dir eine IOException geworfen werden 😉 gib doch einfach mal den StackTrace aus.
 
Zuletzt bearbeitet:
Zudem solltest du nicht dazu übergehen und die Exceptions so allgemein abfragen, wenn in diesem Abschnitt nur eine IOException geworfen werden kann , dann fang im Catch block auch eine IOException ab 😉

wenn mehrere Exceptions auftretten können , kannst du die möglichkeit eines Mutli-Catches verwenden

Java:
try{
 //code here...
}
catch(IOException | NullPointerException | IllegalArgumentException e){
 if(e instanceof IOException){
    // more code here....
 }
// usw...
}
 

Zurück
Oben