Gerenciadores de Layout em Java
Por: Ednelso245 • 27/3/2018 • 1.239 Palavras (5 Páginas) • 385 Visualizações
...
- 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);
r21=new JRadioButton("Graduate"); r22=new JRadioButton("Post Graduate"); r23=new JRadioButton("Ph.D"); p2.add(r21);
p2.add(r22);
p2.add(r23);
ch1=new JCheckBox("Computers"); ch2=new JCheckBox("Electronics"); ch3=new JCheckBox("Marketing"); p3.add(ch1);
p3.add(ch2);
p3.add(ch3);
c=getContentPane(); c.setLayout(new GridLayout(2,2));
t1.addTab("Personal Information",p1); t1.addTab("Educational Qualification",p2); t1.addTab("Areas of Interest",p3); c.add(t1);
}
public static void main(String args[])
{
JTabbedPaneDemo tdemo=new JTabbedPaneDemo(); tdemo.setSize(300,350); tdemo.setVisible(true);
}
}
[pic 2]
CardLayout
Um objeto tipo CardLayout é um gerenciado de layout para um container, que trata cada componente neste container como um cartão (em um rolodex), sendo que somente um cartão pode ser visto por vez. O primeiro componente acrescentado ao CardLayout é o que será exibido quando a aplicação abre.
Vamos ver uma aplicação para entender melhor. O código java que usei vai criar uma aplicação com painel com dois paineis: o primeiro contem um combobox cujo listener permite trocar os cards e o outro painel foi criada com CardLayout, gerando um aplicativo com a seguinte "cara":
[pic 3]
O código simplificado é:
public class ExemploCardLayout implements ItemListener {
JPanel cartoes; //é neste panel que utilizaremos CardLayout
final static String BUTTONPANEL = "Cartao com JButtons"; final static String TEXTPANEL = "Cartao com JTextField"; final static String CHECKPANEL = "Cartao com JCheckBox";
public void adicionarComponentesAoPanel(Container pane) { JPanel comboBoxPane = new JPanel();
String comboBoxItems[] = { BUTTONPANEL, TEXTPANEL,
CHECKPANEL };
JComboBox cb = new JComboBox(comboBoxItems); cb.setEditable(false); cb.addItemListener(this); comboBoxPane.add(cb);
//Cria os "cartoes". // 1. botões
JPanel cartaoComBotoes = new JPanel(); cartaoComBotoes.add(new JButton("Botao n#1")); cartaoComBotoes.add(new JButton("Botao n#2")); cartaoComBotoes.add(new JButton("Botao n#3")); // 2. texto
JPanel cartaoComTexto = new JPanel();
cartaoComTexto.add(new JTextField("Campo de texto de exemplo", 20));
// 3. checkbox JCheckBox chinButton; JCheckBox glassesButton; JCheckBox hairButton; JCheckBox teethButton;
chinButton = new JCheckBox("Chin"); chinButton.setMnemonic(KeyEvent.VK_C); chinButton.setSelected(false);
glassesButton = new JCheckBox("Glasses"); glassesButton.setMnemonic(KeyEvent.VK_G); glassesButton.setSelected(false);
hairButton = new JCheckBox("Hair"); hairButton.setMnemonic(KeyEvent.VK_H); hairButton.setSelected(false);
teethButton = new JCheckBox("Teeth"); teethButton.setMnemonic(KeyEvent.VK_T); teethButton.setSelected(true);
JPanel cartaoComCheckbox = new JPanel(); cartaoComCheckbox.add(chinButton);
...