Frage von snipesss, 22

Bild in JFrame, JLabel einfügen?

import static java.lang.System.out;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Frame {
public static void main(String[] args) {
    
    JFrame meinFrame = new JFrame();
    meinFrame.setVisible(true);
    meinFrame.setSize(1366, 768);
    meinFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
}


}

Meine Frage: Wie kann ich eine Bild Datei (.png) in ein Label oder in ein Frame einfügen, sodass das Bild das ganze Frame gefüllt ist? Brauche ich mehrere Klassen oder Objekte?

Antwort
von FabianHolmes, 22

Wenn es mit JLabel gehen darf:

mainFrame.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("deinBild.jpg")))));

Oder du legst eine von JComponent abgeleitete Klasse an und überschreibst die Methode paintComponent() und malst das Bild dort mit drawImage() auf dem Graphics Variable vom Parameter der Methode paintComponent. Du setzt diese Klasse dann als contentPage deiner JFrame. 

Viel Spass .

Kommentar von snipesss ,

Welche Imports brauch ich dafür?

Kommentar von FabianHolmes ,

Schau in der API Dokumentation nach:

https://docs.oracle.com/javase/7/docs/api/javax/swing/ImageIcon.html
https://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html

also zwei Imports:

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;

Versuch mehr mit API Dokumentation zu arbeiten. 

Kommentar von snipesss ,

Funktioniert nicht..

Fehlermeldung:

 Exception in thread "main" java.lang.Error: Unresolved compilation problem:  

The method read(File) in the type ImageIO is not applicable for the arguments (String)

at Frame.main(Frame.java:14)

und .read wird rot unterstrichen.

Kommentar von FabianHolmes ,

Du kannst keinen String zum ImageIO.read() übergeben, sondern du brauchst eine File Instanz. also new File("pfad zum bild ..."). Vorher musst du auch noch die Klasse File passend importieren. 

Keine passende Antwort gefunden?

Fragen Sie die Community