Ist das hier möglich, ohne das null-Layout oder den GridBag-Layout-Manager zu benutzen?
Diese GUI hatte ich für ein Projekt von mir im Kopf, habe sie hier einmal mit Visual Studio erstellt. Es geht mir hierbei nicht um die einzelnen Komponenten, sondern einen großen Deknanstoß, WIE man hier die Layoutmanager verschachteln müsste.
So soll das Ganze aussehen:
a: BorderLayout.SOUTH
b: alle Komponenten auf ein JPanel mit FlowLayout (oder BorderLayout (Textfeld WEST, Button1 CENTER, Button2 EAST). JPanel BorderLayout.CENTER
c und c1: auf ein JPanel mit BorderLayout (WEST (GroupBox1) und EAST (GroupBox2)). JPanel auf JFrame (BorderLayout.NORTH)
Ich habe also immer einzelne Teile zu einem zusammengefasst, die in einer Spalte sind oder eine andere Gemeinsamkeit haben/zusammen gehören.
Okay, danke.
Aber wie ist das mit der GroupBox1? Das ist ja auch ein JPanel, aber wie ordne ich das an?
GridLayout geht nicht, FlowLayout wüsst ich auch nicht wie. BorderLayout geht ja auch nicht.
Ohne GridBagLayout? Dann würde ich ein BorderLayout nehmen, den mittleren Bereich mit dem Label füllen und den südlichen mit einem Panel das ein GridLayout hat und zwei Buttons trägt.
Eigentlich wollte ich erst einmal etwas Übung mit den anderen Layouts kriegen^^
Und außerdem habe ich bisher nur Schlechts über das GridBagLayout gehört
Habe versucht, das jetzt einmal umzusetzen.
Das Ergebnis ist aber irgendwie ernüchternd und nicht das, was ich mir vorgestellt habe:
Hierbei ist oben links im JPanel viel zu viel Platz.
Außerdem ist von der Mitte nach unten viel zu wenig Abstand zwischen den JPanels und am Rand. Habe versucht, das mit setH/Vgaps etc. auszubügeln, aber ohne Erfolg.
Außerdem sieht man die JProgressBar kaum, auch sie hat zu wenig Abstand. Abhilfe? =/
(wenn ihr schlechten Codestil entdeckt, bitte melden )
PS: Das Ganze soll übrigens ein kleines Projekt in Gedenken an meinen Kumpel werden; immer, wenn ich mit Freunden bei ihm bin, ändern wir seinen Desktophintergrund in irgendwas Bescheuertes (z.B. Pokémon oder Gollum, Barbie, ...) und es ist immer wieder lustig. Jetzt wollte ich ein Programm schreiben, mit dem ich auch bequem von hier aus den Hintergrund ändern kann^^ Und damit ich das Ganze steuern kann, diese GUI.
HGaps und VGaps sind schon richtig:
[java=73] JPanel mainPanel = new JPanel(new BorderLayout(6, 6));[/code]
Außerdem solltest Du beim BorderLayout möglichst immer den CENTER-Bereich bedecken, denn das ist der einzige der seine Größe in zwei Dimensionen anpassen kann:
[java=96]northPanel.add(clientSelectionPanel, BorderLayout.CENTER); [/code]
Hierbei ist oben links im JPanel viel zu viel Platz.
@jason: Genau, das meinte ich, war halt nur schon so spät ^^
Diesen Abstand meine ich noch. Habe das umgesetzt, was du, Ebenius, mir empfohlen
hast. Der Abstand zwischen den Panels ist jetzt gut, totz- und dem bleibt ↑ dieser Abstand immer gleich.