Os gerenciadores de layout são utilizados para organizar os
componentes GUI em um Container, para o propósito de apresentação.
FlowLayout é o gerenciador de layout mais básico, os
componentes são adicionados da esquerda para a direita no Container,
na ordem em que são adicionados até atingir a borda do Container,
onde continuam na próxima linha. Esse Layout ainda permite aos
componentes GUI serem alinhados à esquerda, centralizado e à
direita. O FlowLayout é o padrão para java.awt.Applet,
java.awt.Panel e javax.swing.JPanel. A classe
FlowLayout herda da classe Object e implementa a interface
LayoutManager.
Como exemplo temos abaixo a classe ShowFlowLayout, na qual são
adicionados três botões.
//pacote necessário para utilizar a classe
//JButton
import javax.swing.*;
//pacote necessário para utilizar as classes
//FlowLayout, JFrame e Container
import java.awt.*;
public class ShowFlowLayout extends JFrame{
//método construtor da classe ShowFlowLayout
public ShowFlowLayout(){
//chama o construtor da super classe JFrame,
//e passa a String FlowLayout como parâmetro
super("FlowLayout");
//obtém o container
Container c = getContentPane();
//cria o objeto FlowLayout
FlowLayout layout = new FlowLayout();
//usa o método setAlignment da classe FlowLayout
//e passa a constante center como parâmetro
layout.setAlignment(FlowLayout.CENTER);
//define o layout do container
c.setLayout(layout);
//método herdado de JFrame e utilizado para
//fechar a aplicação com sucesso.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//cria os botões que serão adicionados ao container
JButton esq = new JButton("esquerda");
JButton cen = new JButton("centro");
JButton dir = new JButton("direita");
//utiliza o método add herdado de Component,
//para adicionar os botões(JComponent) ao container
c.add(esq);
c.add(cen);
c.add(dir);
//métodos herdados de JFrame para definir
//o tamanho do JFrame e mostrar o JFrame.
setSize(300, 75);
setVisible(true);
}
//método que os aplicativos java começam executando
public static void main(String args[]){
//chama o construtor da classe
new ShowFlowLayout();
}
}
BorderLayout é o gerenciador padrão para painéis de conteúdo JFrame e JApplet, organizando os componentes em cinco áreas: Norte, Sul, Leste, Oeste e Centro.
A classe BorderLayout herda de Object e implementa a interface LayoutManager2.
Os componentes colocados nas regiões Norte e Sul estendem-se horizontalmente por toda a extensão do Container e tem a mesma altura do componente mais alto colocados nessa região.
Os componentes colocados nas regiões Oeste e Leste estendem-se verticalmente entre as regiões Norte e Sul e tem a mesma largura do componente mais largo colocado nessas regiões.
O componente colocado no centro expande-se por toda região restante.
Os componentes Oeste, Leste e Centro expandem-se para Norte e Sul se os componentes dessa área não existir. O componente do Centro estendem-se horizontalmente se os componentes Oeste e Leste não existirem, mas o Centro não será preenchido se o componente desta localidade não existir.
Como exemplo temos a baixo a classe ShowBorderLayout, na qual são adicionados cinco botões.
//pacote necessário para utilizar a classe
//JButton
import javax.swing.*;
//pacote necessário para utilizar as classes
//BorderLayout, JFrame e Container
import java.awt.*;
public class ShowBorderLayout extends JFrame{
//método construtor da classe ShowBorderLayout
public ShowBorderLayout(){
//chama o construtor da super classe JFrame,
//e passa a String BorderLayout como parâmetro
super("BorderLayout");
//cria um objeto BorderLayout, e passa como parâmetro
//o número de pixels do espaçamento horizontal entre
//os componentes e o número de pixels do espaçamento
//vertical entre os componentes
BorderLayout layout = new BorderLayout(3, 3);
//obtém o container
Container c = getContentPane();
c.setLayout(layout);
//método herdado de JFrame e utilizado para
//fechar a aplicação com sucesso.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//cria os botões que serão adicionados ao container
JButton norte = new JButton("norte");
JButton sul = new JButton("sul");
JButton centro = new JButton("centro");
JButton oeste = new JButton("oeste");
JButton leste = new JButton("leste");
//utiliza o método add herdado de Component,
//para adicionar os botões(JComponent) ao container
c.add(norte, BorderLayout.NORTH); //posição norte
c.add(sul, BorderLayout.SOUTH); //sul
c.add(centro, BorderLayout.CENTER); //centro
c.add(oeste, BorderLayout.WEST); //oeste
c.add(leste, BorderLayout.EAST); //leste
//métodos herdados de JFrame para definir
//o tamanho do JFrame e mostrar o JFrame.
setSize(250, 175);
setVisible(true);
}
//método que os aplicativos java começam executando
public static void main(String args[]){
//chama o construtor da classe
new ShowBorderLayout();
}
}
GridLayout é um gerenciador de layout que divide o
container em uma grade com linhas e colunas, onde os
componentes são colocados a partir da parte superior esquerda
e assim sucessivamente, até completar a linha e para linha abaixo.
A classe GridLayout herda de Object e implementa a interfaceLayoutManager.
Como exemplo temos abaixo a classe ShowBorderLayout, na qual são adicionados seis botões.
//pacote necessário para utilizar a classe
//JButton
import javax.swing.*;
//pacote necessário para utilizar as classes
//GridLayout, JFrame e Container
import java.awt.*;
public class ShowGridLayout extends JFrame{
//método construtor da classe ShowGridLayout
public ShowGridLayout(){
//chama o construtor da super classe JFrame,
//e passa a String GridLayout como parâmetro
super("GridLayout");
//cria um objeto GridLayout com 3 linhas,
//2 colunas, 3 pixel de espaçamento horizontal
//entre os componentes e 3 pixels de espaçamento
//vertical entre os componentes
GridLayout layout = new GridLayout(3, 2, 3, 3);
//obtém o container
Container c = getContentPane();
c.setLayout(layout);
//método herdado de JFrame e utilizado para
//fechar a aplicação com sucesso.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//cria os botões que serão adicionados ao container
JButton um = new JButton("1");
JButton dois = new JButton("2");
JButton tres = new JButton("3");
JButton quatro = new JButton("4");
JButton cinco = new JButton("5");
JButton seis = new JButton("6");
//utiliza o método add herdado de Component,
//para adicionar os botões(JComponent) ao container
c.add(um);
c.add(dois);
c.add(tres);
c.add(quatro);
c.add(cinco);
c.add(seis);
//métodos herdados de JFrame para definir
//o tamanho do JFrame e mostrar o JFrame.
setSize(250, 175);
setVisible(true);
}
//método que os aplicativos java começam executando
public static void main(String args[]){
//chama o construtor da classe
new ShowGridLayout();
}
}