Das GridBagLayout brauchst Du ja nur für die rechte Seite der GUI.
Prinzipiell gilt, dass jeder Layoutmanager sein eigenes Panel bekommt und dann auf dem Gesamtpanel angeordet wird.
Das sind in der Übungsaufgabe dann bis zu vier Panels für Links, Mitte, Rechts und Unten.
Beim GridBagLayout gilt, dass die einzelnen Bestandteile für das GridBagLayout über Regeln angeordnet werden, welche in GridBagConstraints Objekten abgelegt werden.
Du nimmst Dir also ein Raster und ordnest Dir die Komponenten darauf an. Durch das GridBagConstraints hast Du folgende Variablen für die Darstellung zur Verfügung:
(1)
gridx und
gridy geben die Position im Raster an.
(2)
gridwidth und
gridheight geben an, wie viele Felder (Zeilen/Spalten) überdeckt werden.
(3)
weightx und
weighty stellen fest wie zusätzlicher Platz aufgeteilt werden soll.
(4) Gibt noch ne Menge anderes, ist aber für diese Aufgabe nicht relevant.
Da über die genaue Größe der Komponenten in der Aufgabe keine Aussage gemacht wurde, reichen also die Punkte (1) und (2) aus.
Das Gitter in der Beispielaufgabe ist einfach zusammengesetzt:
1 Zeile: 2 Schalter, 2 Zeile: 1 Schalter usw..
Der Anfang sieht dann so aus:
|
Source code
|
1
2
3
4
5
6
|
//------------------------------------------> x y w h wx wy
addComponent( panel, gbl, new JButton( "R1"), 0, 0, 1, 1, 0, 0 );
addComponent( panel, gbl, new JButton( "R2"), 1, 0, 1, 1, 0, 0 );
addComponent( panel, gbl, new JButton( "R3"), 0, 1, 2, 1, 0, 0 );
addComponent( panel, gbl, new JButton( "R4"), 0, 2, 2, 1, 0, 0 );
// ... usw.
|
Die Methode addComponent() ist in obigen Beispiel selbstgestrickt, macht auch Sinn, damit der Quellcode schön kurz bleibt.
Um die im GridBagConstraints Objekt festgelegten Regeln abzusegnen, muss noch mit der setConstraints() Methode der LayoutManager über die Änderung informiert werden.
Falls noch Fragen offen im Raum stehen, empfehle ich nach-wie-vor
Java ist eine Insel
Und damit "Gute Nacht & schlaft recht schön"!