Gerenciadores de Layout em Java
Por: Marcus Salomé • 25/8/2016 • Relatório de pesquisa • 1.368 Palavras (6 Páginas) • 374 Visualizações
ETEC PROFESSOR BASILIDES DE GODOY
Gerenciadores de Layout
Marcus Salomé
Junho
2016
Border Layout
O gerenciador de layout BorderLayout é o gerenciador padrão para as classes JFrame, JWindow, JDialog, JInternalFrame e JApplet. Este gerenciador divide um container em cinco regiões, a saber: centro (CENTER), norte (NORTH), sul (SOUTH), Leste (EAST) e oeste (WEST).
Os componentes são dispostos de acordo com seus tamanhos preferidos e as restrições de tamanho do container. Os componentes NORTH e SOUTH podem ser esticados horizontalmente; Os componentes EAST e WEST podem ser esticados verticalmente. O componente CENTER pode ser esticado tanto na vertical quanto na horizontal, afim de preencher qualquer espaço sobrando.
Usando BorderLayout para dispor componentes em uma Jframe, Vejamos a seguir um exemplo da aplicação do gerenciador BorderLayout. Observe como usamos cinco botões, cada um em uma região diferente do gerenciador:
import javax.swing.*; import java.awt.*;
public class Estudos extends JFrame{ public Estudos(){
super("O gerenciador de layout BorderLayout");
Container tela = getContentPane();
BorderLayout layout = new BorderLayout(); tela.setLayout(layout);
JButton bt1 = new JButton("CENTER");
JButton bt2 = new JButton("NORTH");
JButton bt3 = new JButton("SOUTH");
JButton bt4 = new JButton("EAST");
JButton bt5 = new JButton("WEST");
tela.add(BorderLayout.CENTER, bt1); tela.add(BorderLayout.NORTH, bt2); tela.add(BorderLayout.SOUTH, bt3); tela.add(BorderLayout.EAST, bt4); tela.add(BorderLayout.WEST, bt5);
setSize(300, 150); setVisible(true);
}
public static void main(String args[]){ Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Este código apresentará o resultado mostrado na figura seguinte:
[pic 1]
Execute a aplicação e veja como as regiões do gerenciador são ajustadas. Um detalhe a observar é que não precisamos adicionar exatamente cinco componentes. O gerenciador até apenas um ou dois componentes. Suponhamos que você esteja escrevendo um editor de texto. Uma boa idéia é reservar a região CENTER para o componente de texto e a região SOUTH para a barra de status.
Entendendo os construtores da classe BorderLayout
No Java 6, a classe BorderLayout apresenta dois construtores. O primeiro:
BorderLayout layout = new BorderLayout();
constrói um gerenciador sem espaçamento entre os componentes. Já o segundo construtor:
BorderLayout layout = new BorderLayout(int hgap, int vgap);
permite definir espaçamentos horizontais e verticais entre as cinco regiões.
Lembre-se de gerenciadores de layout podem ser combinados à vontade. Assim, você pode inserir um JPanel na região NORTH de um BorderLayout e ainda definir BorderLayout como sendo o gerenciador de layout do JPanel. As possibilidades são imensas.
JtabbedPane
O JtabbedPane funciona como um container de painéis, capaz de modularizar um formulário em diversas seções, em outras palavras, você consegue possibilitar a entrada de uma grande quantidade de informações sem a necessidade de possuir um formulário com uma dimensão que pode não caber no monitor do usuário.
É muito comum em sistemas que exigem o cadastro de informações detalhadas o uso do JtabbedPane. Por exemplo: O módulo da Caixa Econômica Federal responsável por realizar o cadastro de pessoas que desejam realizar um financiamento de uma casa própria, exige uma quantidade imensa de informações, fazendo com que seja inviável pedir todas essas informações em apenas uma tela, trazendo dois grandes problemas:
- Cansaço e Poluição visual;
- Dimensão inapropriada do formulário, exigindo que o usuário necessite de um monitor maior ou tenha que alterar a sua resolução para se adequar ao sistema;
Métodos:
JTabbedPane(): Cria um JtabbedPane com a localização padrão JtabbedPane.Top. O lugar especifica a divisão do JtabbedPane.
JTabbedPane(int placement): Cria um JTabbedPane com a localização especificada no argumento do construtor. Podendo ser: JTabbedPane.TOP, JTabbedPane.BOTTOM, JTabbedPane.LEFT and JTabbedPane.RIGHT.
Exemplo:
import javax.swing.*; import java.awt.*; import java.awt.event.*;
public class JTabbedPaneDemo extends JFrame
{
JTabbedPane t1=new JTabbedPane();
JPanel p1,p2,p3;
Container c;
Container c1;
JLabel l1,l2,l3;
JTextField text1,text2,text3;
JRadioButton r21,r22,r23;
JCheckBox ch1,ch2,ch3;
public JTabbedPaneDemo()
{
p1=new JPanel(); p2=new JPanel(); p3=new JPanel();
c1=getContentPane(); p1.setLayout(new GridLayout(3,2));
l1=new JLabel("Name");
l2=new JLabel("Date of Birth (dd.mm.yyyy)"); l3=new JLabel("Identification Number");
text1=new JTextField(10); text2=new JTextField(10); text3=new JTextField(10);
p1.add(l1);
p1.add(text1);
p1.add(l2);
p1.add(text2);
p1.add(l3);
p1.add(text3);
c1.add(p1);
...