Das GridBagLayout ist ein äußerst flexibler aber in der
Programmierung komplexer LayoutManager. Die darzstellenden Komponenten werden
beim GridLayout in einem flexiblen Raster dargestellt.
Die Größe der Rasterelemente wird durch die Größe
der darzustellenden Komponenten bestimmt.
Die Position, Ausrichtung und Größe
der einzelnen Komponenten werden beim GridBagLayout durch Zuordnung
von GridBagConstraints bestimmt. Im nachfolgenden Beispiel
MyGridBagLayour1 soll mit
Hilfe des GridBagLayouts ein Panel erzeugt werden, bei dem die
Komponenten ähnlich dem GridLayout angeordnet werden.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyGridBagLayout1 extends JFrame{
public MyGridBagLayout1(){
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
panel.add(new JLabel("Label"),gbc);
gbc.gridx = 1;
panel.add(new JTextField(6),gbc);
gbc.gridx = 0;
gbc.gridy = 1;
panel.add(new JButton("ÖK"),gbc);
gbc.gridx = 1;
panel.add(new JButton("Abort"),gbc);
add(panel);
}
public static void main(String[] args){
MyGridBagLayout1 myGridBagLayout1 = new MyGridBagLayout1();
myGridBagLayout1.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
myGridBagLayout1.pack();
myGridBagLayout1.setVisible(true);
}
}
GridBagConstraints
Wie oben bereits erwähnt, werden Position und Größe und Position
der Komponenten beim GridBagLayout über
GridBagConstraints bestimmt.
Die Bestimmung des Layouts wird über öffentliche Instanzvariablen
der GridBagConstraints vorgenommen.
Nachfolgend eine Liste der
Instanzvariablen des GridBagLayout zur Bestimmung des Layouts:
gridx und gridy
Unverzichtbar beim GridBagLayout sind die Instanzvariablen
gridx und gridy der GridBagConstraints.
Mit Hilfe dieser Variablen werden die Koordinaten (Koordinaten im Sinne
Rasterposition und nicht etwa Pixel) für die darzustzellende
Komponente festgelegt.
Standardmäßig werden gridx und gridy
mit dem Wert 0 initialisiert.
Das nachfolgende Beispiel zeigt die Verwendung dieser
Instanzvariablen zur Plazierung der Buttons. Die Buttons geben als Text
die Koordinaten, die zur Plazierung verwendet werden, an. Im Quelltext
wird die Erzeugung des Panels in der Methode createThePanel()
vorgenommen.
import java.awt.*;
import javax.swing.*;
public class MyGridBagLayout2 {
public static void main(String[] args){
MyGridBagLayout2 myGridBagLayout2 = new MyGridBagLayout2();
myGridBagLayout2.createView();
}
private void createView(){
JFrame frame = new JFrame();
frame.add(createThePanel());
frame.pack();
frame.setVisible(true);
}
private JPanel createThePanel(){
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
panel.add(new JButton("0,0"),gbc);
gbc.gridx = 1;
gbc.gridy = 0;
panel.add(new JButton("1,0"),gbc);
gbc.gridx = 0;
gbc.gridy = 1;
panel.add(new JButton("0,1"),gbc);
gbc.gridx = 1;
gbc.gridy = 1;
panel.add(new JButton("1,1"),gbc);
gbc.gridx = 0;
gbc.gridy = 2;
panel.add(new JButton("0,2"),gbc);
gbc.gridx = 1;
gbc.gridy = 2;
panel.add(new JButton("1,2"),gbc);
return panel;
}
}
gridwidth und gridheight
Mit den Instanzvariablen gridwidth und gridheight
der Klasse GridBagConstraints wird
festgelegt, wieviele Spalten und Zeilen eine Komponente im Raster beansprucht.
Standardmäßig werden gridwidth und gridheight
mit dem Wert 1 initialisiert.
API: GridBagConstraints (Java Platform SE 6) 
http://java.sun.com/javase/6/docs/api/java/awt/GridBagConstraints.html