Ich bin neu in Swing und versuche, einen Hintergrund eines Bildes zu meinem JFrame
hinzuzufügen. Meine paintComponent
Methode funktioniert jedoch nicht. Könnten Sie mir bitte einige Vorschläge machen, wie ich meinen Code korrigieren kann, damit das Bild im Hintergrund erscheint?paintComponent Code funktioniert nicht
-Code unten:
// all necessary imports have been added.
public class Menu extends JFrame {
private Image backgroundImage;
private JFrame frame;
public static void main(String[] args) throws IOException {
Menu window = new Menu();
window.frame.setVisible(true);
}
public Menu() throws IOException {
initialize();
}
public void initialize() throws IOException {
frame = new JFrame();
frame.setBounds(100, 100, 312, 294);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
}
public void paintComponent(Graphics g) throws IOException {
backgroundImage = ImageIO.read(new File("P:\\Profiles\\workspace\\Games\\Images\\matrix.jpg"));
g.drawImage(backgroundImage, 0, 0, null);
}
}
Hallo danke Ihnen helfen. Es scheint jetzt zu funktionieren. Für zukünftige Referenzen könntest du erklären, warum es vorher nicht funktionierte, da ich noch neu bin und diesen Fehler nicht noch einmal machen möchte. –
'JFrame' verwendet einen' JPanel' als Inhaltsbereich. Es macht keinen Sinn, die Malmethoden von 'JFrame' zu überschreiben, denn das, was Sie tatsächlich sehen, ist das Inhaltsfeld des Rahmens (es befindet sich vorne und verbirgt alles, was Sie versuchen, direkt zu diesem Rahmen zu malen), also ist dies die Komponente, in der Sie sich befinden möchte das Gemälde anpassen. – Berger
* "Overriding paintComponent eines JFrame ist nicht nützlich" * - Eigentlich ist es unmöglich – MadProgrammer