Olá para todos vocês.
Nesse Primeiro tópico, que escrevo sobre Java, estou trazendo uma dica para iniciantes.
Como se altera o conteúdo de uma tela em java.
Vou dar um exemplo simples sem muitas explicações, porém devo ressaltar que é para ajudá-lo a começar a desenvolver seus aplicativos desktop e também pode ser adaptado para Applets. Vai de seus estudos.
O Exemplo é simples:
Você tem essa tela:
E quer deixar assim:
Ou assim:
Vejamos como prosseguir:
Para esse exemplo eu usei 4 classes separadas em 4 arquivos diferentes, todas em um mesmo pacote.
Porque? Porque prefiro para fazer assim, no momento, apenas para ser didático e mais fácil de visualizar.
Para alternar entre as telas, utilize o menu.
Segue as classes:
Classe principal, que é a que contém o método main:
public class principal {
public static void main(String[] args) {
Tela_Inicial mod = new Tela_Inicial();
mod.setVisible(true);
mod.setDefaultCloseOperation(0);
}
}
Classe Tela_Inicial:
public class Tela_Inicial extends JFrame{
private JMenuBar barra_de_menu = new JMenuBar();
private JMenu menu1 = new JMenu("Arquivo");
private JMenuItem item1 = new JMenuItem("Sair");
private JMenuItem item2 = new JMenuItem("Painel 1");
private JMenuItem item3 = new JMenuItem("Painel 2");
public Tela_Inicial(){
super("Teste de Troca de JPanel");
menu1.add(item2);
menu1.add(item3);
menu1.addSeparator();
menu1.add(item1);
barra_de_menu.add(menu1);
setJMenuBar(barra_de_menu);
setSize(800,600);
setLocationRelativeTo(null);
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
cria_ActionListener();
validate();
}
private void cria_ActionListener(){
item1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
System.exit(0);
}
});
item2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
getContentPane().removeAll();
painel_1 pn1 = new painel_1();
add(pn1);
setDefaultCloseOperation(EXIT_ON_CLOSE);
repaint();
}
});
item3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
getContentPane().removeAll();
painel_2 pn2 = new painel_2();
add(pn2);
setDefaultCloseOperation(EXIT_ON_CLOSE);
repaint();
}
});
}
}
Classe painel_1:
public class painel_1 extends JPanel{
private JButton bt1 = new JButton("Painel 1");
public painel_1 (){
setBounds(0,0,800,600);
bt1.setSize(90, 25);
bt1.setLocation(5, 5);
add(bt1);
setBackground(Color.red);
}
}
Classe painel_2:
public class painel_2 extends JPanel{
private JButton bt1 = new JButton("Painel 2");
public painel_2(){
setBounds(0,0,800,600);
bt1.setSize(90, 25);
bt1.setLocation(5, 5);
add(bt1);
setBackground(Color.blue);
}
}
Com essas telas você terá uma liberdade bacana para montar as suas telas como quizer, já que a mesma não é presa em layouts pré-definidos.
Verifique que as suas informações podem ser passadas para o construtor, o que significa, qualquer coisa inclusive classes de bancos e controles, basta fazer sobre carga de métodos. É apenas um exemplo, expandir vai da sua imaginação.
Até a próxima.
Nenhum comentário:
Postar um comentário