Introducción a GridBagLayout en Java

GridBagLayout es uno de los gestores de diseño más complejos, potentes y complejos que ofrece Java. GridBagLayout alinea los componentes verticalmente, horizontalmente o a lo largo de la línea base. Los componentes pueden ser del mismo ancho o no, según el requisito. Mantienen y administran celdas dinámicas donde el área de visualización se compone de una o más celdas. Estos componentes están asociados con la instancia de GridBagConstraints en la que los objetos de restricción ayudan a organizar el área de visualización de los componentes en la cuadrícula. GridBagLayout es del paquete java.awt. Veamos el constructor, los métodos y la implementación de GridBagLayout en las siguientes secciones.

Constructores de GridBagLayout en Java

Java.awt.GridBagLayout se declara utilizando la siguiente sintaxis.

public class GridBagLayout extends Object implements LayoutManager2, Serializable

GridBagLayout () es el constructor de GridBagLayout que ayuda a crear un administrador de diseño de bolsa de cuadrícula. En primer lugar, creamos el objeto para la clase GridBagLayout con la ayuda de un constructor sin argumentos

GridBagLayout obj = new GridBagLayout();
setLayout(obj);

Veamos algunos de los campos para la clase java.awt.GridBagLayout.

  • TAMAÑO PREFERIDO

Especifica el tamaño de cuadrícula preferido del componente. Aquí, también puede ser la brecha que debe usarse para un valor de rango particular.

  • DEFAULT_SIZE

Especifica el tamaño de la cuadrícula del componente. Aquí, también puede ser la brecha que debe usarse para un valor de rango particular.

  • defaultConstraints

La instancia de restricciones de gridbag que contiene los valores predeterminados se retiene aquí.

  • layoutInfo

Los detalles de diseño de Gridbag se mantienen en esto.

  • rowWeights

Anular a la fila de pesos que se mantienen aquí.

  • MAXGRIDSIZE

Ayuda en la compatibilidad con versiones anteriores.

  • rowHeights

Las anulaciones se mantienen a las alturas mínimas de la fila.

Métodos de GridBagLayout en Java

Los siguientes son varios métodos de GridBagLayout que pueden usarse para diferentes propósitos.

  • removeLayoutComponent (componente cmpn)

Desde el diseño, se elimina el componente especificado.

  • addLayoutComponent (componente cmpn, objetos objcons)

El objeto especificado de la restricción se agrega al diseño del componente especificado.

  • getLayoutAlignmentY (Contenedor cnt)

Se devuelve la alineación a lo largo del eje y.

  • addLayoutComponent (nombre de cadena, componente cmpn)

El objeto especificado de la restricción se agrega al diseño del componente especificado con un nombre específico.

  • Encadenar()

Los valores en el diseño de la bolsa de cuadrícula se devuelven en la representación de la cadena.

  • getLayoutAlignmentX (Contenedor cnt)

Se devuelve la alineación a lo largo del eje x.

  • getConstraints (componente cmpn)

Se devuelven las restricciones especificadas del componente.

  • maximumLayoutSize (contenedor cnt)

Los componentes en el contenedor se devuelven con las dimensiones máximas.

  • minimumLayoutSize (Contenedor cntmin)

Los componentes en el contenedor se devuelven con las dimensiones mínimas.

  • preferredLayoutSize (Contenedor cntpref)

Los componentes en el contenedor se devuelven con las dimensiones preferidas.

  • organizarGrid (contenedor cnt)

Ayuda a organizar la cuadrícula.

  • ajustarForGravity (GridBagConstraints cn, Rectangle rect)

Dependiendo de la geometría de las restricciones, este método ajusta los campos ancho, x, alto e y a los valores correctos.

  • getLayoutDimensions ()

El ancho de la columna y el alto de las filas se determinan utilizando este método.

  • getLayoutInfo (Contenedor cnt, int sizeflag)

Es obsoleto y se utiliza por compatibilidad con versiones anteriores.

  • getLayoutOrigin ()

Determina el origen del área de diseño, en el espacio de coordenadas gráficas del contenedor de destino.

  • getLayoutWeights ()

Los pesos de la columna y el alto de las filas se determinan utilizando este método.

  • getMinSize (Contenedor cnt, GridBagLayoutInfo inf)

Según los detalles obtenidos de getLayoutInfo, se devuelve el tamaño mínimo del maestro.

  • invalidateLayout (Contenedor cnt)

Si alguna información almacenada en caché está presente en el administrador de diseño, invalida el diseño.

  • layoutContainer (Contenedor cnt)

El contenedor especificado se distribuirá utilizando este diseño de bolsa de rejilla.

  • Ubicación del punto (int x, int y)

Este método identifica la celda que contiene el punto mencionado usando x e y.

  • lookupConstraints (componente cmp)

Se recuperan las restricciones del componente mencionado.

  • setConstraints (componente cmp, GridBagConstraints const)

Las restricciones del componente mencionado se establecen en el diseño.

Programa para implementar GridBagLayout en Java

Ahora, veamos los programas para implementar GridBagLayout en Java.

Programa n. ° 1

// Java program to implement GridBagLayout layout manager
//import the packages needed
import java.awt.Button;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.*;
//GridExample class extends JFrame
public class GridExample extends JFrame(
//main method
public static void main(String() args) (
//object of the class GridExample
GridExample ge = new GridExample();
)
//constructor of class GridExample
public GridExample() (
// Object of GridBagLayout
GridBagLayout gl = new GridBagLayout();
// Object of GridBagConstraints
GridBagConstraints gc = new GridBagConstraints();
// GridBagLayout is set
setLayout(gl);
// Method to set JFrame Title.
setTitle("Example for GridBag Layout ");
GridBagLayout ll = new GridBagLayout();
this.setLayout(ll);
//components in horizontal
gc.fill = GridBagConstraints.HORIZONTAL;
//left most row and top most column
gc.gridx = 0;
gc.gridy = 0;
//Button A added
this.add(new Button("Button A"), gc);
gc.gridx = 1;
gc.gridy = 0;
//Button B added
this.add(new Button("Button B"), gc);
gc.fill = GridBagConstraints.HORIZONTAL;
//increase component height by 20 pixels
gc.ipady = 20;
gc.gridx = 0;
gc.gridy = 1;
//Button C added
this.add(new Button("Button C"), gc);
gc.gridx = 1;
gc.gridy = 1;
///Button D added
this.add(new Button("Button D"), gc);
gc.gridx = 0;
gc.gridy = 2;
gc.fill = GridBagConstraints.HORIZONTAL;
gc.gridwidth = 2;
//Button E added
this.add(new Button("Button E"), gc);
// set the size
setSize(200, 300);
setPreferredSize(getSize());
//GUI visible to user
setVisible(true);
//exit on clicking close button
setDefaultCloseOperation(EXIT_ON_CLOSE);
)
)

Salida de muestra:

Aquí, se crea un GridBagLayout con cinco botones como A, B, C, D y E. Se utilizan varios métodos para configurar el tamaño, el título, la visibilidad de la GUI, etc.

Programa 2

//Java program to implement GridBagLayout
import java.awt.*;
import javax.swing.*;
public class GridExample (
//main method
public static void main(String() args) (
//object of JFrame
JFrame jf = new JFrame();
//exit on clicking close button
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//object of container
Container cn = jf.getContentPane();
//set layout
cn.setLayout(new GridBagLayout());
//object of constraints
GridBagConstraints gc = new GridBagConstraints();
gc.gridx = 0;
gc.gridy = GridBagConstraints.RELATIVE;
cn.add(new JButton("Button A"));
cn.add(new JButton("Button B"));
gc.fill = GridBagConstraints.HORIZONTAL;
cn.add(new JButton("Button c"));
// set the size
jf.setSize(400, 300);
//GUI visible to user
jf.setVisible(true);
)
)

Salida de muestra:

Este programa implementa GridBagLayout en otro método. Pero, aquí el título no está configurado y solo hay 3 botones presentes.

Conclusión

GridBagLayout es uno de los gestores de diseño potentes, flexibles y complejos en Java que se ofrece con el paquete java.awt. Alinea los componentes verticalmente, horizontalmente o a lo largo de la línea. La sintaxis, el constructor, los métodos y la implementación de GridBagLayout se explican en este documento.

Artículos recomendados

Esta es una guía de GridBagLayout en Java. Aquí discutimos los Métodos y el Programa para implementar GridBagLayout en Java. También puede echar un vistazo a los siguientes artículos para obtener más información:

  1. Diseño en Java
  2. JDialog en Java
  3. Anotaciones Java
  4. BorderLayout en Java
  5. Herramientas de implementación de Java
  6. JFrame en Java
  7. Diseño HTML