In diesem Abschnitt wird grundlegendes Wissen über das Erstellen von Fenstern und Komponenten vorausgesetzt.

Am Ende dieses Artikels sollte der Leser die Fähigkeit haben, Komponenten innerhalb eines Rahmens zu positionieren. Demnächst wird dann diese Benutzerschnittstelle in weiteren Artikeln ausgebaut. Zuletzt wird sie sich hoffentlich so verhalten, wie man es von einer ordentlichen Benutzeroberfläche erwartet.

Zum besseren Verständnis des Ziels folgt hier in Gänze der Code, auf den hingearbeitet wird.


Die ersten Zeilen bis hin zum Konstruktor sollten nicht zuviel Kopfzerbrechen bereiten. Es handelt sich um recht gewöhnliche Importe und Variablengenerierungen.

Beim Konstruktor werden die Dinge jedoch interessant:


Container contentPane = getContentPanegetContentPane();
GridBagLayout gridbag = new GridBagLayout();
contentPane.setLayout(gridbag);

Zunächst nimmt man das Content-Pane des Gridbag-Window und legt ein Gridbag-Layout-Objekt an. Das geht ebenso vor sich wie zuvor das Anlegen von Grid-Layout- und Border-Layout-Objekten. Dann definiert man das Gridbag-Layout-Objekt als Layout des Content-Pane.


GridBagConstraintsGridBagConstraints c =
new GridBagConstraintsGridBagConstraints();

Nun folgt das einzige Objekt innerhalb des ganzen Vorgangs, Gridbag-Constraints. Mit diesem Objekt werden die Begrenzungen für alle Komponenten innerhalb des Gridbag-Layout bestimmt. Um einem Gridbag-Layout eine Komponente hinzuzufügen, muss man dieser zunächst ein Gridbag-Constraints-Objekt zuordnen.

Gridbag-Constraints hat elf Felder, die verändert werden können. Dazu gibt es noch eine Reihe von Konstanten, durch die die Belegungen vereinfacht werden. Die Felder sind:

  1. gridx – die Zeile, die eine Komponente im Gitter einnimmt.
  2. gridy – die Spalte, die eine Komponente im Gitter einnimmt.
  3. gridwidth – die Anzahl an Spalten, die eine Komponente einnehmen wird, analog zum Attribut colspan in HTML.
  4. gridheight – die Anzahl an Zeilen, die eine Komponente einnehmen wird, analog zum Attribut rowspan in HTML.
  5. weightx – teilt dem Layout-Manager mit, wie überschüssiger Platz in horizontaler Ausrichtung auf die Zellen verteilt wird.
  6. weighty – teilt dem Layout-Manager mit, wie überschüssiger Platz in vertikaler Ausrichtung auf die Zellen verteilt wird.
  7. anchor – teilt dem Layout-Manager mit, wo eine Komponente innerhalb ihrer Zelle platziert wird.
  8. fill – wie die Komponente sich verhalten soll, wenn der Anzeigebereich größer ist als die Komponente. Kann horizontal, vertikal oder in beide Richtungen füllen.
  9. insets – der außen zwischen Komponente und den Begrenzungen der Gitterzelle liegende Raum.
  10. ipadx – bestimmt, um wie viele Pixel sich die Komponente in horizontaler Richtung zusätzlich zur minimalen Breite vergrößert. Die horizontale Ausdehnung der Komponente beträgt mindestens deren Minimalbreite plus ipadx-Pixel.
  11. ipady – bestimmt, um wie viele Pixel sich die Komponente in vertikaler Richtung zusätzlich zur minimalen Höhe vergrößert. Die vertikale Ausdehnung der Komponente beträgt mindestens deren Minimalhöhe plus ipady-Pixel.

Neueste Kommentare 

Noch keine Kommentare zu Java: Benutzeroberflächen gestalten mit Gridbag-Layout

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *