segunda-feira, 27 de maio de 2013

Como Alterar/Mudar o conteúdo de um aplicativo Java Desktop ( 1 Forma ) Usando layout nulo (null)

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