Introdução ao BoxLayout em Java

BoxLayout é um gerenciador de layout padrão que acompanha a plataforma Java. Ajuda a organizar os componentes de maneira horizontal ou vertical dentro do contêiner. Nisso, o arranjo dos componentes será como tal, mesmo que redimensionemos o quadro. O arranjo vertical permanece vertical, mesmo que ocorra o redimensionamento do quadro. Em outras palavras, os componentes dentro do contêiner não serão quebrados. Diferentemente de outros gerenciadores de layout, o construtor BoxLayout passa os contêineres necessários para o construtor do gerenciador de layout. Construtores, métodos e exemplos da classe BoxLayout serão discutidos nas seções a seguir.

Construtores de BoxLayout em Java

Para implementar a classe BoxLayout em Java, o seguinte construtor será usado:

  • public BoxLayout (Container c, eixo int)

Os dois argumentos passados ​​são contêiner e eixo, o que ajuda na criação do contêiner com o eixo mencionado. As duas direções válidas são:

  1. Da esquerda para a direita - BoxLayout.X_AXIS
  2. De cima para baixo - BoxLayout.Y_AXIS

Se estivermos passando o construtor como BoxLayout.Y_AXIS, um layout como a figura a seguir (uma coluna) será exibida.

Se estivermos passando o construtor como BoxLayout.X_AXIS, um layout como a figura a seguir (uma linha) será exibida.

Métodos da classe BoxLayout em Java

Abaixo estão os vários métodos da classe boxlayout em java:

1. addLayoutComponent (Component comp, Object obj)

O objetivo deste método é adicionar o componente mencionado ao contêiner usando o objeto de restrição especificado.

Modificador e Tipo: Void

2. getLayoutAlignmentX (contêiner de contêiner)

Este método retorna o alinhamento do contêiner da esquerda para a direção certa. ou seja, eixo X. O valor pode ser dado entre 0 e 1, onde 0 é o alinhamento da origem, 1 é o alinhamento mais distante da origem e 0, 5 é o alinhamento centralizado.

Modificador e Tipo: Flutuar

3. getLayoutAlignmentY (contêiner de contêiner)

Este método retorna o alinhamento do contêiner na direção de cima para baixo. isto é, eixo Y. O valor pode ser dado entre 0 e 1, onde 0 é o alinhamento da origem, 1 é o alinhamento mais distante da origem e 0, 5 é o alinhamento centralizado.

Modificador e Tipo: Flutuar

4. maximumLayoutSize (contêiner de contêiner)

Esse método retorna o valor máximo de tamanho que o contêiner de destino pode usar para o layout dos contêineres adicionados a ele.

Modificador e Tipo: Flutuar

5. minimumLayoutSize (contêiner de contêiner)

Esse método retorna o valor mínimo de tamanho que o contêiner de destino pode usar para o layout dos contêineres adicionados a ele.

Modificador e Tipo: Flutuar

6. removeLayoutComponent (Component comp)

Este método remove o componente mencionado do layout do contêiner.

7. layoutContainer (contêiner de contêiner)

Esse método estabelece o layout do contêiner quando é chamado pelo AWT (Abstract Window Toolkit) .

8. invalidateLayout (Containercontnr)

Este método descarta as informações em cache do layout. Em outras palavras, invalida o layout.

Exemplos da classe BoxLayout em Java

Agora, vamos ver alguns exemplos da classe BoxLayout com alguns dos métodos explicados na seção acima.

Exemplo 1: Programa Java para criar um BoxLayout com X-Axis

//Java program to demonstrate BoxLayout with X Axis
import java.awt.*;
import javax.swing.*;
//A subclass BoxLayoutProgram that extends Frame Class
public class BoxLayoutProgram extends Frame (
Button buttons(); //Button reference variable
//Constructor of BoxLayoutProgram
public BoxLayoutProgram ()
(
buttons = new Button (5);
for (int i = 0;i<5;i++)
(
buttons(i) = new Button ("Box" + (i + 1));
add (buttons(i)); //adds button
)
setLayout (new BoxLayout (this, BoxLayout.X_AXIS)); //sets the layout by mentioning the axis
setSize(400, 400); //sets the width and height of the frame
setVisible(true); //sets the GUI visible to user
)
public static void main(String args())(
BoxLayoutProgram b=new BoxLayoutProgram(); //object of the class
)
)

Saída de amostra:

Aqui, a classe criada será estendida da classe Frame que é importada de java.awt. Em seguida, um layout com o conteúdo mencionado, largura e altura será criado com a ajuda do construtor criado.

Exemplo 2: programa Java para criar um BoxLayout com eixo Y

//Java program to demonstrate BoxLayout with Y Axis
import java.awt.*;
import javax.swing.*;
//A subclass BoxLayoutProgram that extends Frame Class
public class BoxLayoutProgram extends Frame (
Button buttons(); //Button reference variable
//Constructor of BoxLayoutProgram
public BoxLayoutProgram ()
(
buttons = new Button (5);
for (int i = 0;i<5;i++)
(
buttons(i) = new Button ("Box" + (i + 1));
add (buttons(i)); //adds button
)
setLayout (new BoxLayout (this, BoxLayout.Y_AXIS)); //sets the layout by mentioning the axis
setSize(400, 400); //sets the width and height of the frame
setVisible(true); //sets the GUI visible to user
)
public static void main(String args())(
BoxLayoutProgram b=new BoxLayoutProgram(); //object of the class
)
)

Saída de amostra:

O programa acima é semelhante ao Exemplo 1, exceto que isso está criando botões no eixo Y.

Exemplo 3: Programa Java que cria botões nos eixos X e Y

//Java program that creates buttons in both X axis and Y axis
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//Class that extends JFrame Class
public class BoxLayoutXY extends JFrame
(
//Constructor
public BoxLayoutXY()
(
//helps in adding the object to the container
Container cp = getContentPane();
//sets the layout of container as FlowLayout where the components are placed in a line
cp.setLayout(new FlowLayout());
//create an object of the box class
Box hbox = Box. createHorizontalBox ();
//create an object of the box class
Box vbox = Box. createVerticalBox ();
//add horizontal and vertical components to the container
hbox.add(new JButton("Horizontal Button 1"));
hbox.add(new JButton("Horizontal Button 2"));
hbox.add(new JButton("Horizontal Button 3"));
vbox.add(new JButton("Vertical Button 1"));
vbox.add(new JButton("Vertical Button 2"));
vbox.add(new JButton("Vertical Button 3"));
cp.add(hbox);
cp.add(vbox);
//method similar to setsize that places the content in preferred size
pack();
//GUI visible to user
setVisible(true);
)
public static void main(String args())
(
//calls the constructor of the class
new BoxLayoutXY();
)
)

Saída de amostra:

Diferentemente dos exemplos 1 e 2, este programa estende a classe JFrame para implementar o BoxLayout. Vários outros métodos, como pack (), createVerticalBox, são usados ​​para executar as mesmas tarefas presentes nos exemplos 1 e 2.

Conclusão

BoxLayout é um gerenciador de layout que ajuda a organizar os componentes de um contêiner no formato especificado. ou seja, eixo X e eixo Y. Para implementar isso, o construtor da classe que contém métodos que executam diferentes funcionalidades será usado.

Artigos recomendados

Este foi um guia para o BoxLayout em Java. Aqui discutimos os Construtores, métodos e exemplos de boxlayout em Java com códigos. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Layout em Java
  2. Layout de grade em Java
  3. Heap Sort In Java
  4. Destruidor em Java
  5. Heap Sort em Python
  6. Layout HTML