Ich versuche zurzeit zu Übungszwecken ein kleines Spiel zu programmieren (nichts Kompliziertes, hauptsächlich Buttons und Ausgabefelder) und während ich mit dem Programmieren der Spiellogik ganz gut voran komme, bereitet mir die GUI-Programmierung einiges Kopfzerbrechen.
Aktuelles, konkretes Problem: Ich habe ein JFrame und darin JButtons und JTextFields. Nun habe ich als JLabel ein Hintergrundbild eingebaut. Das hat aber blöderweise die Buttons und Felder überdeckt. Ich habe herausgefunden, dass der Layout-Manager daran schuld sein soll und verwende daher nun setLayout(null) mit jeweils setBounds(x,y,w,h)- was gut ist, ich wollte sowieso herausfinden, wie ich die Elemente frei anordnen kann. Nun passiert aber etwas seltsames: Das Hintergrundbild verdeckt immer noch die anderen Elemente, aber wenn ich mit der Maus über Buttons fahre, werden diese aufgedeckt, und wenn in einem Textfeld etwas passiert, wird auch dieses aufgedeckt.
Ich kann mir darauf absolut keinen Reim machen. setOpaque(false) hat leider keinen Effekt. Was kann man da tun?
Gesehen habe ich schon, dass man auch mit Layern arbeiten kann - ist das die Lösung? Oder gibt es eine einfache Möglichkeit?
Danke!
Aktuelles, konkretes Problem: Ich habe ein JFrame und darin JButtons und JTextFields. Nun habe ich als JLabel ein Hintergrundbild eingebaut. Das hat aber blöderweise die Buttons und Felder überdeckt. Ich habe herausgefunden, dass der Layout-Manager daran schuld sein soll und verwende daher nun setLayout(null) mit jeweils setBounds(x,y,w,h)- was gut ist, ich wollte sowieso herausfinden, wie ich die Elemente frei anordnen kann. Nun passiert aber etwas seltsames: Das Hintergrundbild verdeckt immer noch die anderen Elemente, aber wenn ich mit der Maus über Buttons fahre, werden diese aufgedeckt, und wenn in einem Textfeld etwas passiert, wird auch dieses aufgedeckt.
Ich kann mir darauf absolut keinen Reim machen. setOpaque(false) hat leider keinen Effekt. Was kann man da tun?
Gesehen habe ich schon, dass man auch mit Layern arbeiten kann - ist das die Lösung? Oder gibt es eine einfache Möglichkeit?
Danke!