2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund

Digimortal

Neues Mitglied
Heyho,

bin noch recht neu in Java und hab 2 Probleme die ich gerne einfach beheben würde.
Hoffe ihr könnt helfen.

(1) Position ändern vs. LayoutManager
Ich hab mir nen Frame erstellt in dem ich mitm LayoutManager Buttons etc gesetzt hab.
Einige der Buttons sollen die Positionen anderer Buttons/Labels/etc. ändern.
Wenn ich die Objekte mitm LayoutManager gesetzt hab ist es über setLocation oder setBounds nicht möglich die Position zu ändern.

Wenn ich die Objekte per Hand, also z.B. wie folgt:
Java:
 private JButton bspButton;
bspButton = new JButton("BeispielButton");
bspButton.setBounds(100, 100, 50, 25);

setze, kann ich die position mit
Java:
 bspButton.setLocation(200,200);
auch ändern, beim LayoutManager nicht !!!

Kann ich das umgehen?
Die Menge an zu versetzenden Objekten is einfach zu groß, als dass ich alle einzeln erzeugen möchte...

(2) Bilder einfügen
Ich möchte ganz schlicht auf meinem Frame Bilder einfügen und deren ... ich nenns mal 'Tiefe' festlegen. Also welches Image vor bzw. über den anderen liegt.
Ziel ist: ich hab ein großes Bild, nicht als Hintergrund aber als Hauptbild und möchte darauf einige kleine andere Bildchen im Vordergrund haben (und wie beim verherigen Problem: auch versetzen).
Ich hab massenweise Google-Ergebnisse zum einfügen von Bildern gefunden, aber entweder hab ich immer was falsch gemacht oder irgendwas wird vorausgesetzt, was nicht dabeistand ...

Hättet ihr ne schlichte Vorlage zum einfügen von Bildern auf meinem Frame MIT ALLEN VORAUSSETZUNGEN (also imports etc. so dass ich nix vergessen kann) ???
 
zu 1) Ein LayoutManager positioniert die Komponenten nach dem implementierten Regeln, da kann man nichts machen. Freies Positionieren geht nur ohne LayoutManager - was für mich aber das allerletzte Mittel wäre.
Wie und warum werden Komponenten versetzt? Welcher Zweck steckt dahinter?
zu 2)
Evlt. JLayeredPane oder selbst zeichnen. Das setzt aber schon tiefere Java Kenntnisse voraus.
 
Zu (1): Danke,

dann muss ich mir mit den Objekten wohl doch die Mühe machen sie einzeln zu positionieren.

Hintergrund dafür ist folgender (und erklärt mich bitte nicht für verrückt aber ich bin in Java halt nich sehr versiert und nehme die einfachste Möglichkeit):

Ich muss eine Haussteuerung programmieren.
Bedeutet wir haben nen Server dem wir für eine 4-Raum-Wohnung Anfragen schicken und SetWerte schicken können.
Im Vordergrund steht aber die GUI...
Ich möchte die Möglichkeit bieten Funktionen wie z.B. das Licht in der Küche auszumachen nicht nur in der Wohnungsübersicht sondern auch in der Küchen(allein)übersicht anzubieten ohne dafür 2 verschiedene Buttons zu erstellen.
Also erstelle ich einen Button den ich je nach Zustand (Ort: WohnungsÜbersicht / Ort: Küchenansicht) an die entsprechende Stelle verschieben/ein-/ausblenden möchte.

Ich weiss das klingt ziemlich Noob-Like, aber aus Zeitmangel such ich mir ne Möglichkeit ... und 100 Buttons erstellen wenn man nur 10 braucht erscheint mir übertrieben.
Wobei meine Möglichkeit warscheinlich auch nich zur performance beiträgt, ab er auf die schnelle fiel mir das als erstes ein, zumal ich (wie in (2) erwähnt) unheimlich viele Objekte platzieren muss.

Ich probiere die ganze Zeit dran rum und wenns schnell geht änder ich meine Vorgehensweise auch gerne mal, aber da Performance etc. nicht besonders relevant ist für diese Aufgabe, suche ich mir einfach eine Möglichkeit die ich schnell umsetzen kann.


Zu (2):
Lösung gefunden, keine Antwort mehr nötig 😉
 
Ich weiss das klingt ziemlich Noob-Like, aber aus Zeitmangel such ich mir ne Möglichkeit ... und 100 Buttons erstellen wenn man nur 10 braucht erscheint mir übertrieben.
Ich würde so etwas ganz ohne Buttons machen. Einfach ein Hausplan z.B. als Bild anzeigen lassen. Mit einem MouseListener die Klick Position abfragen und dann je nachdem ob Hausansicht oder Detailansicht "Küche" aktiv ist, berechnen ob und wenn ja welcher "Schalter" gedrückt wurde.
 

Zurück
Oben