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?
1 Antwort
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 .
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.
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.
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.
Welche Imports brauch ich dafür?