Komponenten in den Vordergrund

Network

Top Contributor
Hi Community,

Vorgeschichte(Optional):
Ich habe einen Karteneditor programmiert, das Problem ist, dass verschieden große Objekte unterschiedlich große Abstände zueinander brauchen.
Die Abstände hab ich so geregelt, dass ein JTextField (vieleicht weiss jmd. eine bessere Variante) unter das gesetzte Bild gelegt wird. Damit der MouseListener nicht mehr reagiert und man somit kein Objekt mehr auf den Bereich setzen kann.

Jedoch brauchen unterschiedlich Große Objekte unterschiedliche Abstände zueinander.
Also dachte ich mir, ich setze einfach mehrere JPanels auf denen gezeichnet wird hintereinander.
Jedes JPanel bekommt von jedem gesetzten Objekt ein JTextField unterschiedlicher Größe aufgetragen, damit die jeweiligen Abstände auch zueinander passen

Gibt es einen Befehl in Java, mit dem ich regeln kann, welcher JPanel in den Vordergrund gesetzt werden soll?

Vielen Dank für die Hilfe!!!
 
Da Du sowieso selbst zeichnest: Warum zeichnest Du nicht alles auf eine Komponente?
Das mit den TextFields habe ich nicht verstanden.

Alternativ kannst Du Dir ja auch mal JLayeredPane anschauen: How to...
 
Da Du sowieso selbst zeichnest: Warum zeichnest Du nicht alles auf eine Komponente?
Das mit den TextFields habe ich nicht verstanden.

Alternativ kannst Du Dir ja auch mal JLayeredPane anschauen: How to...

1. Ahh Danke schonmal, die ersten Blicke hören sich ja schonmal vielversprechend an, dann ordne ich mehrere 2D Felder in einem 3D Raum hintereinander an 🙂 (hoffe das geht)

2. Ich zeichne sie nicht selber, sondern man klickt auf eine Stelle auf einer bestimmten Stelle und genau an dieser Stelle wird ein Bild gesetzt! (Sry ungenau erklärt)

3. Das mit dem JTextField:
Damit ein Objekt genau an der Stelle auftaucht, an dem man mit der Maus geklickt hat, brauche ich einen MouseListener. Der MouseListener ist darauf programmiert, den JPanel, auf dem man die Objekte "klickt" zu achten.
Wenn jetzt ein Objekt an der betreffenden Stelle gesetzt wurde, ist das Problem, dass ich nochmal auf die selbe Stelle klicken kann(oder leicht versetzt daneben) und der MouseListener reagiert wieder und setzt ein Objekt nochmal an die selbe Stelle
(in einem Spiel ist das natürlich nicht so toll wenn sich 2 Objekte überschneiden -> Absturtz des Spiels für das der Karteneditor gemacht wurde.)
Also muss ich dafür sorgen, dass der MouseListener nicht reagiert, wenn man auf das Objekt klickt!!!
Also schieb ich ein JTextField unter das Objekt, dann reagiert der MouseListener nicht mehr darauf.

(Schöner währe selbstverständlich eine andere Möglichkeit als ein JTextField. Besonderst da das JTextField nicht die Farbe des Hintergrunds annehmen kann(unsichtbar))
 
Du musst ja irgendwie die Objekte/Bilder verwalten. Da könnte man doch überprüfen, ob sich an der geklickten Position nicht bereits ein Objekt/Bild befindet!?
 
Japp es gibt diese Möglichkeit auch, nur wenn man Beispielsweise 50Objekte setzt, muss man das Programm 50 Variablen durchgehen lassen. Ich müsste für jede Variable eine eigene Befehlszeile schreiben, das ist noch ziemlich viel Arbeit, wenn es keine bessere Möglichkeit gibt, werde ich wahrscheinlich genau diese nehmen :-|

Aber vielen Dank für den 3D Tipp 😀
Die möglichkeit hatte ich garnicht in Betracht gezogen.

Frage -> gelöst
 
Zuletzt bearbeitet:
Naja 50 Objekte sind jetzt nicht wirklich viel. Diese hält man dann ja sowieso in einer Liste und da macht es nicht viel aus ob's 50 oder 1000 Objekte sind.
 

Zurück
Oben