
GridBagLayout es el más flexible - y complejo - controlador de disposición porpocionado por la platataforma Java. Como se ve en el applet anterior, un GridBagLayout, sitúa los componentes en una parrilla de filas y columnas, permitiendo que los componentes se espandan más de una fila o columna. No es necesario que todas las filas tengan la misma altura, ni que las columnas tengan la misma anchura. Esencialmente, GridBagLayout sitúa los componentes en celdas en una parrilla, y luego utiliza los tamaños preferidos de los componentes que detemina cómo debe ser el tamaño de la celda.

Si agrandamos la ventana como se vió arriba, observaremos que la fila de abajo, que contiene Button 5, obtiene un nuevo espacio vertical. El nuevo espacio horizontal se divide entre todas las columnas. El comportamiento de redimensionado está basado en pesos que el programa asigna a los componentes individuales en el GridBagLayout. También habremos notado que cada componente toda todo el espacio horizontal disponible. Este comportamiento también es especificado por el programa.
La forma en que el programa especifica el tamaño y la posición característicos de sus componetes está especificado por las restricciones de cada componente. Para especificar restricciones, debemos seleccionar las variables de ejemplar en un objeto GridBagConstraints y decírselo al GridBagLayout (con el método setConstraints()) para asociar las restricciones con el componente.
Las siguientes páginas explican las restricciones que podemos seleccionar y proporcionan ejemplos
Esta página muestra las variables qué tiene un objeto GridBagConstraints, qué valores pueden tener, y cómo asociar el objeto GridBagConstraints resultante con un componente.
Esta página lo pone todo junto, explicando el código del programa de esta página
Podemos encontrar distintos ejemplos que usan GridBagLayout a lo largo de este tutorial. Esta tabla lista unos pocos.
Ejemplo Dónde se describe Notas GridBagWindow.java Es página Utiliza casi todas las características de GridBagLayout. TextSamplerDemo.java Usar componentes de texto Swing Alinea dos pares de etiquetas y campos de texto, además añade una etiqueta que cruza toda la anchura del contenedor. ContainerEventDemo.java Cómo escribir un oyente de Container Posiciona cinco componentes dentro de un contenedor, usando pesos, rellenos y posicionamiento relativos.