Gerenciadores de Layouts
Os gerenciadores de layout do Java Swing são responsáveis por organizar os componentes em uma janela de acordo com regras específicas. Existem vários gerenciadores de layout disponíveis na biblioteca Swing, cada um com suas próprias características e finalidades.
BorderLayout
O BorderLayout é o layout padrão da biblioteca, divide a janela em cinco áreas: NORTH ou PAGE_START, SOUTH ou PAGE_END, EAST ou LINE_END, WEST ou LINE_START e CENTER. Cada área pode conter um único componente e, se não houver componente para preencher uma determinada área, ela será deixada em branco.
Exemplo de código:
import java.awt.*;
import javax.swing.*;
public class BorderLayoutExample extends JFrame {
public BorderLayoutExample() {
setTitle("BorderLayout Example");
setSize(400, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
add(new JButton("NORTH/PAGE_START"), BorderLayout.NORTH); //BorderLayout.PAGE_START
add(new JButton("SOUTH/PAGE_END"), BorderLayout.SOUTH); //BorderLayout.PAGE_END
add(new JButton("EAST/LINE_END"), BorderLayout.EAST); //BorderLayout.LINE_END
add(new JButton("WEST/LINE_START"), BorderLayout.WEST); //BorderLayout.LINE_START
add(new JButton("CENTER"), BorderLayout.CENTER);
}
public static void main(String[] args) {
BorderLayoutExample ex = new BorderLayoutExample();
ex.setVisible(true);
}
}
FlowLayout
O FlowLayout organiza os componentes em uma linha, adicionando novos componentes à direita do anterior. Quando a linha estiver cheia, o próximo componente será adicionado à linha abaixo. O FlowLayout é útil para janelas com vários botões ou outros componentes pequenos.
Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class FlowLayoutExample extends JFrame {
public FlowLayoutExample() {
setTitle("FlowLayout Example");
setSize(300, 110);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
add(new JButton("Button 1"));
add(new JButton("Button 2"));
add(new JButton("Button 3"));
add(new JButton("Button 4"));
add(new JButton("Button 5"));
}
public static void main(String[] args) {
FlowLayoutExample ex = new FlowLayoutExample();
ex.setVisible(true);
}
}
GridLayout
O GridLayout é um gerenciador de layout do Java Swing que organiza os componentes em uma grade com linhas e colunas iguais. Ele é especialmente útil quando se deseja organizar componentes em uma forma tabular.
A classe GridLayout possui um construtor que recebe quatro parâmetros: rows
- o número de linhas, cols
- o número de colunas da grade, hgap
- espaçamento horizontal dos elementos e vgap
- espaçamento vertical dos elementos. Os componentes são adicionados à grade da esquerda para a direita e de cima para baixo.
Aqui está um exemplo simples de como usar o GridLayout:
import javax.swing.*;
import java.awt.*;
public class GridLayoutExample extends JFrame {
public GridLayoutExample(){
setTitle("Exemplo GridLayout");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
// cria um painel com GridLayout 3x3 com cada elemento espaçado em 10x10
JPanel panel = new JPanel(new GridLayout(/*rows*/3, /*cols*/3, /*hgap*/10, /*vgap*/10));
// adiciona botões ao painel
for (int i = 1; i <= 9; i++) {
JButton button = new JButton("Botão " + i);
panel.add(button);
}
// adiciona o painel ao frame e exibe o frame
add(panel);
}
public static void main(String[] args) {
GridLayoutExample ex = new GridLayoutExample();
ex.setVisible(true);
}
}
Este código cria uma janela com um painel que contém nove botões dispostos em uma grade de três por três. Cada botão é rotulado com um número sequencial. Ao executar o código, você deve ver uma janela com a grade de botões. Você pode ajustar o tamanho da janela e observar como o GridLayout organiza automaticamente os botões.
Referências
Last updated