Warum wird mein Hintergrundbild nicht angezeigt in Java (NetBeans 8.2)?

1 Antwort

Ich habe keine Ahnung, von welcher Quelle du gerade lernst (bitte gib sie einmal als Kommentar an), aber du solltest sie nicht weiter verfolgen. Da reiht sich gerade eine schlechte Praxis nach der nächsten an.

1) Arbeite mit Layout Managern, statt einfach nur null zu übergeben. Die setBounds-Aufrufe fliegen natürlich dabei auch gleich raus. Wenn dir das zu kompliziert erscheint, nutze Swing Builder (in NetBeans ist die Matisse integriert), so kannst du Layouts via Drag & Drop zusammenschieben.

2) Der Aufruf von setVisible sollte erst erfolgen, wenn du alle relevanten Komponenten für das Frame angehängt hast. Andernfalls muss das gesamte Fenster neu gezeichnet werden.

3) Klassennamen beginnen nach Java Konvention mit einem Großbuchstaben. So lassen sie sich leicht von Variablen unterscheiden.

4) Zur var-Klasse habe ich nun schon öfter hier etwas geschrieben. Lies dir diese Antwort durch. Es ist ein effektiver Weg, das OOP-Konzept zu brechen.

5) Die repaint-Methode gibt eine Anfrage heraus, die Komponente neuzuzeichnen (also paintComponent letzten Endes nochmal auszuführen). Ich sehe nicht, dass das bei dir innerhalb von paintComponent notwendig wäre. Du machst so wohl eher dein Programm nur langsamer, mehr nicht.

Eine vertrauenswürdige Quelle findest du in den Oracle Tutorials.