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:
- Da esquerda para a direita - BoxLayout.X_AXIS
- 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 -
- Layout em Java
- Layout de grade em Java
- Heap Sort In Java
- Destruidor em Java
- Heap Sort em Python
- Layout HTML