Avançar, Avançar e Conluir

4 respostas
L

Gostaria de criar um processo em que o sistema solicitará informações do usuário do tipo: Nome e logo abaixo terá 2 botões (Avançar e Voltar).
Desta forma, o usuário poderá tanto avançar para o próximo passo como também voltar, para por exemplo redigitar o Nome na primeira tela.
Qual a melhor prática para se fazer este tipo de interface?

Da forma que estou fazendo não esta ficando legal rss…

4 Respostas

dreampeppers99

Qual interface grafica esta trabalhando?

L

Estou usando Swing.

Nicolas_Fernandes

Que tal você criar todos os painéis que você terá no formulário e, ao clicar em "Avançar" ou "Voltar", você pode apagar todo o conteúdo do painel central e desenhar o novo painel!

Algo do tipo:
public InterfaceAvancarAvancarConcluir extends JFrame {

    JPanel panelPrimeiro, panelSegundo, panelTerceiro, panelBotoes;
    JButton buttonAvancarPrimeiro, buttonAvancarSegundo, buttonConcluir;

    public InterfaceAvancarAvancarConcluir() {

        //...
        Container container = getContentPane();
        container.add( recuperarPanelPrimeiro() );
        container.add( recuperarPanelBotoes() );

        setContentPane(container);
    }

    // LIMPA TODOS OS PAINÉIS DO FORMULÁRIO.
    //________________________________________________________________________
    private void limparTodosPanels() {

        for (Component componente : getContentPane().getComponents()) {
            if (componente instanceof JPanel && !componente.getName("PanelBotoes")) {
                getContentPane().remove(componente);
            }
        }
    }

    // ESCONDE TODOS OS BOTÕES DO FORMULÁRIO.
    //________________________________________________________________________
    private void esconderTodosBotoes() {

        buttonAvancarPrimeiro.setVisible(false);
        buttonAvancarSegundo.setVisible(false);
        buttonConcluir.setVisible(false);
    }

    // RECUPERA O PAINEL DOS BOTÕES CONTIDOS NO FORMULÁRIO.
    //________________________________________________________________________
    public JPanel recuperarPanelBotoes() {

        if (panelBotoes == null) {

        panelBotoes = new JPanel(); 
        panelBotoes.setName("PanelBotoes");
        buttonAvancarPrimeiro = new JButton("Avançar");
        buttonAvancarPrimeiro.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent event) {

                esconderTodosBotoes();
                limparTodosPanels();
                buttonAvancarSegundo.setVisible(true);
                // esconde tudo, apaga todos os painéis e mostra o próximo painel e próximo botão.
                getContentPane().add( recuperarPanelSegundo() );
            }
        });
        buttonAvancarSegundo = new JButton("Avançar");
        buttonAvancarSegundo.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent event) {

                esconderTodosBotoes();
                limparTodosPanels();
                buttonConcluir.setVisible(true);
                // esconde tudo, apaga todos os painéis e mostra o próximo painel e próximo botão.
                getContentPane().add( recuperarPanelConcluir() );
            }
        });
        
        buttonConcluir = new JButton("Concluir");
        buttonConcluir.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent event) {

                esconderTodosBotoes();
                /* faz suas operações */
            }
        });
  
        panelBotoes.add(buttonAvancarPrimeiro);
        panelBotoes.add(buttonAvancarSegundo);
        panelBotoes.add(buttonConcluir);
    }
    }
}

Sacou mais ou menos a ideia? Que acha?

L

Entendi sim cara…
Valeu mesmo pela dica, tentarei implementar desta forma!
Muito obrigado

Criado 26 de julho de 2011
Ultima resposta 26 de jul. de 2011
Respostas 4
Participantes 3