GridBagLayout macht Probleme...

HazelNut

Mitglied
wieder einmal...

hallo
Also ich habe hier eine wirklich sehr einfache gui.
Mit sechs Elementen

Mein ganzer Frame hat das Layout Gridbag.
Darauf liegen drei Panels.

Ein top Panel mit BoarderLayout.
Eines links mit Gridbbaglayout.
eines rechts mit GBL.
und ganz unten ein label.

So alles schön mit GBL hinzugefügt und sieht beim starten auch ganz schön aus.
Nur sobald ich die Größe ändere ist es so, dass mein top Panel nicht mehr ganz oben ist sondern von meinem Frame immer weiter nach unten geht.
Anders ausgedrückt, dass alle Elemente in der Mitte bleiben.
Ich weis einfach nicht wie ich das verhindern kann.
Habe bereits alle anchor und fills durchprobiert aber nichts scheint zu funktionieren.

Des weiteren wandert beim vergrößern mein rechter Container immer weiter nach außen und zwischen ihm und dem linken wird ein immer größerer Freiraum, nicht gerade schön.

Was natürlich nett wäre wenn alles gleich resized.

Hoffe mal, dass mir wenigstens jemand einen Tipp für das TopPanel geben kann.
mfg

PS: Code kann ich noch nachliefern, aber vllt kann mir ja so schon jemand einen Tipp geben.
 
Lol, okay habe denn Artikel heute 5 mal durchgelesen aber nur über Positionierung und Ausfüllung <.>

Habe jetzt halt mal weighty zu meinem topPanel hinzugefügt und er steht jetzt auch fest oben.

Jetzt hätte ich noch eine Frage:
Ich habe doch geschrieben, dass die beiden Panels in der Mitte so auseinanderziehen.
Kann ich das eigentlich verhindern? Normalerweise doch nicht, nur wenn ich den Inhalt auch vergrößern würde, richtig?

Naja, wollte jetzt doch einfach sagen, das ich eine fixe Größe nehme.
Würde eigentlich auch passen (außer jmd hat eine Lösung dafür).

Mein Problem wäre noch, dass wenn ich eine Eingabe mache das Label am Ende nicht ganz angezeigt wird.
Habe nun eine Zeile darüber hinzugefügt und mit Box. createRigidArea(getminimumsize(); bestückt.
Dabei ist dieser Container dann aber viel zu groß, und der Abstand vom Label zum Panel ist viel zu groß.
Also habe ich getMinimumSize() überschrieben aber dann kommt wieder das gleiche raus wie oben, dass der Text im Label nicht ganz angezeigt wird.

Wie kann ich das umgehen?
 
Ich habe doch geschrieben, dass die beiden Panels in der Mitte so auseinanderziehen.
Kann ich das eigentlich verhindern? Normalerweise doch nicht, nur wenn ich den Inhalt auch vergrößern würde, richtig?
Klar lässt sich das verhindern. Du solltest due Gewichtung in X-Richtung oder den Wert von
Code:
fill
für die entsprechenden Komponenten entfernen.

Naja, wollte jetzt doch einfach sagen, das ich eine fixe Größe nehme.
Würde eigentlich auch passen (außer jmd hat eine Lösung dafür).

...

Mein Problem wäre noch, dass wenn ich eine Eingabe mache das Label am Ende nicht ganz angezeigt wird.
Bisher hat noch niemand ein Bild von deiner Wunsch-GUI gesehen. Mach mal einen Skizze, dann kann man sicher eher etwas sagen.
 
Ja, ich hab dieses "überdecken" jetzt mit Insets gelöst und gut ist 🙂

Wie ichs mache dass sich mein Content verändert weis ich zwar noch immer nicht aber naja...
Bei einem Text könnte man doch einfach schauen wie viele Zeichen der beihaltet und dann die Schriftgröße verändern? So das ich halt alles im sichtbaren bereich habe und keine Punkte sehe.
Bräuchte zwar auch das sich ein Bild verändert aber wenn man ein 200x100 pic auf Screenwidth zieht schauts ja sowieso net so schön aus, da hilft ja nur mehr ein neues größeres bild.
 

Zurück
Oben