Introdução ao GridBagLayout em Java

GridBagLayout é um dos gerenciadores de layout mais complexos, poderosos e complexos que o Java oferece. GridBagLayout alinha os componentes verticalmente, horizontalmente ou ao longo da linha de base. Os componentes podem ter a mesma largura ou não, com base no requisito. Eles mantêm e gerenciam células dinâmicas em que a área de exibição é composta por uma ou mais células. Esses componentes estão associados à instância de GridBagConstraints, na qual os objetos de restrições ajudam a organizar a área de exibição dos componentes na grade. GridBagLayout é do pacote java.awt. Vamos ver o construtor, métodos e implementação de GridBagLayout nas seções a seguir.

Construtores de GridBagLayout em Java

Java.awt.GridBagLayout é declarado usando a seguinte sintaxe.

public class GridBagLayout extends Object implements LayoutManager2, Serializable

GridBagLayout () é o construtor de GridBagLayout, que ajuda na criação de um gerenciador de layout de grade. Primeiramente, criamos o objeto para a classe GridBagLayout com a ajuda de um construtor sem argumento

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

Vamos ver alguns dos campos da classe java.awt.GridBagLayout.

  • PREFERRED_SIZE

Ele especifica o tamanho da grade preferido do componente. Aqui, também pode ser o intervalo que deve ser usado para um valor de intervalo específico.

  • DEFAULT_SIZE

Ele especifica o tamanho da grade do componente. Aqui, também pode ser o intervalo que deve ser usado para um valor de intervalo específico.

  • defaultConstraints

A instância de restrições do gridbag que contém os valores padrão é mantida aqui.

  • layoutInfo

Os detalhes de layout do Gridbag estão presentes nisso.

  • rowWeights

A substituição para os pesos da linha está mantendo aqui.

  • MAXGRIDSIZE

Ajuda na compatibilidade com versões anteriores.

  • rowHeights

As substituições são mantidas nas alturas mínimas da linha.

Métodos de GridBagLayout em Java

A seguir estão os vários métodos de GridBagLayout que podem ser usados ​​para diferentes propósitos.

  • removeLayoutComponent (componente cmpn)

No layout, o componente especificado é removido.

  • addLayoutComponent (Component cmpn, Object objcons)

O objeto especificado da restrição é adicionado ao layout do componente especificado.

  • getLayoutAlignmentY (contêiner cnt)

O alinhamento ao longo do eixo y é retornado.

  • addLayoutComponent (nome da string, componente cmpn)

O objeto especificado da restrição é adicionado ao layout do componente especificado com um nome específico.

  • para sequenciar()

Os valores no layout da grade são retornados na representação da sequência.

  • getLayoutAlignmentX (container cnt)

O alinhamento ao longo do eixo x é retornado.

  • getConstraints (componente cmpn)

As restrições especificadas do componente são retornadas.

  • maximumLayoutSize (container cnt)

Os componentes no contêiner são retornados com as dimensões máximas.

  • minimumLayoutSize (Container cntmin)

Os componentes no contêiner são retornados com as dimensões mínimas.

  • preferidoLayoutSize (Container cntpref)

Os componentes no contêiner são retornados com as dimensões preferidas.

  • organizeGrid (container cnt)

Ajuda a organizar a grade.

  • AdjustForGravity (GridBagConstraints cn, retângulo ret)

Dependendo da geometria das restrições, esse método ajusta os campos width, x, height e y para os valores corretos.

  • getLayoutDimensions ()

A largura da coluna e a altura das linhas são determinadas usando este método.

  • getLayoutInfo (container cnt, int sizeflag)

É obsoleto e usado para compatibilidade com versões anteriores.

  • getLayoutOrigin ()

Ele determina a origem da área de layout, no espaço de coordenadas gráficas do contêiner de destino.

  • getLayoutWeights ()

Os pesos da coluna e a altura das linhas são determinados usando este método.

  • getMinSize (Container cnt, GridBagLayoutInfo inf)

Com base nos detalhes obtidos em getLayoutInfo, o tamanho mínimo do mestre é retornado.

  • invalidateLayout (container cnt)

Se alguma informação em cache estiver presente no gerenciador de layout, ela invalidará o layout.

  • layoutContainer (container cnt)

O contêiner especificado será disposto usando esse layout de grade.

  • Localização do ponto (int x, int y)

Este método identifica a célula que contém o ponto mencionado usando x e y.

  • lookupConstraints (componente cmp)

As restrições do componente mencionado são recuperadas.

  • setConstraints (componente cmp, GridBagConstraints const)

As restrições do componente mencionado são definidas no layout.

Programa para implementar GridBagLayout em Java

Agora, vamos ver os programas para implementar GridBagLayout em Java.

Programa # 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);
)
)

Saída de amostra:

Aqui, um GridBagLayout com cinco botões como A, B, C, D e E são criados. Vários métodos são usados ​​para definir tamanho, título, visibilidade da 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);
)
)

Saída de amostra:

Este programa implementa o GridBagLayout em outro método. Mas aqui o título não está definido e apenas três botões estão presentes.

Conclusão

GridBagLayout é um dos gerenciadores de layout poderosos, flexíveis e complexos em Java, que é oferecido no pacote java.awt. Alinha os componentes verticalmente, horizontalmente ou ao longo da linha. Sintaxe, construtor, métodos e implementação de GridBagLayout são explicados neste documento.

Artigos recomendados

Este é um guia para GridBagLayout em Java. Aqui discutimos os métodos e o programa para implementar GridBagLayout em Java. Você também pode consultar os seguintes artigos para saber mais -

  1. Layout em Java
  2. JDialog em Java
  3. Anotações Java
  4. BorderLayout em Java
  5. Ferramentas de implantação Java
  6. JFrame em Java
  7. Layout HTML