De nuevo, aqu� est� el applet que muestra un GridBagLayout en acci�n

Esta es una imagen del GUI del applet, para ejecutarlo, pulsa sobre ella y el applet aparecer� en una nueva ventana del navegador.
Abajo tienes el c�digo que crea el GridBagLayout y los componentes que maneja. Aqu� tienes el programa completo. El programa puede ejecutarse dentro de un applet, con la ayuda de AppletButton, o como una aplicaci�n.
JButton button;
Container contentPane = getContentPane();
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
contentPane.setLayout(gridbag);
c.fill = GridBagConstraints.HORIZONTAL;
button = new JButton("Button 1");
c.weightx = 0.5;
c.gridx = 0;
c.gridy = 0;
gridbag.setConstraints(button, c);
contentPane.add(button);
button = new JButton("2");
c.gridx = 1;
c.gridy = 0;
gridbag.setConstraints(button, c);
contentPane.add(button);
button = new JButton("Button 3");
c.gridx = 2;
c.gridy = 0;
gridbag.setConstraints(button, c);
contentPane.add(new JButton("Button 3"));
button = new JButton("Long-Named Button 4");
c.ipady = 40; //make this component tall
c.weightx = 0.0;
c.gridwidth = 3;
c.gridx = 0;
c.gridy = 1;
gridbag.setConstraints(button, c);
contentPane.add(button);
button = new JButton("Button 5");
c.ipady = 0; //reset to default
c.weighty = 1.0; //request any extra vertical space
c.anchor = GridBagConstraints.SOUTH; //bottom of space
c.insets = new Insets(10,0,0,0); //top padding
c.gridx = 1; //aligned with button 2
c.gridwidth = 2; //2 columns wide
c.gridy = 2; //third row
gridbag.setConstraints(button, c);
contentPane.add(button);
Este ejemplo utiliza un ejemplar de GridBagConstraints para todos los componetes manejados por el GridBagLayout. Justo antes de que cada componente sea a�adido al contenedor, el c�digo selecciona (o resetea a los valores por defecto) las variables apropiadas del objeto GridBagConstraints. Luego utiliza el m�todo setConstraints() para grabar los valores obligatorios de ese componente.
Por ejemplo, para hacer que el bot�n 4 sea extra alto, el ejemplo tiene este c�digo.
c.ipady = 40;
Y antes de seleccionar las restricciones para el siguiente componente, el c�dio reseta el valor de ipady al vaor por defecto
c.ipady = 0;
Para mayor claridad aqu� tienes una tabla que muestra todas las obligaciones para cada componente manejado por GridBagLayout. Los valores que no son por defecto est�n marcados en negrita. Los valores que son diferentes de su entrada anterior en la tabla est�n marcados en it�lica.
| Componente | Restricciones |
|---|---|
| Todos los componentes | ipadx = 0 fill = GridBagConstraints.HORIZONTAL |
| Button 1 | ipady = 0 weightx = 0.5 weighty = 0.0 gridwidth = 1 anchor = GridBagConstraints.CENTER insets = new Insets(0,0,0,0) gridx = 0 gridy = 0 |
| Button 2 | weightx = 0.5 gridx = 1 gridy = 0 |
| Button 3 | weightx = 0.5 gridx = 2 gridy = 0 |
| Button 4 | ipady = 40 weightx = 0.0 gridwidth = 3 gridx = 0 gridy = 1 |
| Button 5 | ipady = 0 weightx = 0.0 weighty = 1.0 anchor = GridBagConstraints.SOUTH insets = new Insets(10,0,0,0) gridwidth = 2 gridx = 1 gridy = 2 |
Todos los componentes de este contenedor son tan grandes como sea aposible, dependiendo de su fila y columna. El programa consigue esto selecci�n la variable fill de GridBagConstraints a GridBagConstraints.HORIZONTAL, dej�ndola seleccionada para todos los componentes. Si el programa no seleccionar el relleno, los botones ser�an de su anchura natural, de esta forma.

Este programa tiene cuatro componentes que se espanden varias columnas (buttons 4 y 5). Para hacer m�s alto el bot�n 4, le a�adimos un borde interno (ipady). Para poner espacio entre los botones 4 y 5, usamos insets para a�adir un m�nimo de 10 pixels sobre el bot�n 5 y para que el bot�n 5 se situe en la parte inferior de su celda.
Cuando se agranda la ventana del programa, la anchura de las columnas crece los mismo que la ventana. Este es el resultado de cada componente de la primer fila (donde cada componente tiene la anchura de una columna) tiene weightx = 1.0. El valor real del weightx de estos componentes no tiene importancia. Lo que importa es que todos los componentes (y as� todas las columnas) tienen el mismo peso que es mayor que cero. Si ning�n componente manejado por el GridBagLayout tuviera seleccionado weightx, cuando se ampliara la anchura del contenedor, los componentes permanecer�an juntos en el centro del contenedor de sta forma.

Observamos que alargamos la ventana, la �ltima fila es la que se hace m�s alta. Es es as� porque s�lo el bot�n 5 tiene weighty mayor que cero.