Usando JPanel seguidos

Oi pessoal,

Estou fazendo uma aplicação que é do tipo daquelas de instalador do Windows, que só é preciso apertar o botão NEXT.

Eu crio o JFrame e dou um setContentPane e depois um pack em um JPanel1.

O JPanel1 aparece legal, ai nele (JPanel1) tem um botao NEXT para o proximo JPanel2, só que nao estou conseguindo fazer isso.

Alguem poderia me dar uma ajuda??

Valew

Quando vc der next no JPane1 faça isso:



Jpanel1.setVisible(false);

ClasseJpanel2 Jpanel2 = new ClasseJpanel2();
Jpanel2.setVisible(true);

abraços!

gilmaslima,

Não deu certo. Quando dou o NEXT, a tela fica sem nada.

O código ficou assim:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
    this.setVisible(false);    
    Painel2 painel2 = new Painel2();
    painel2.setVisible(true);        
}                                        

Faltou você pegar o evento do clique do botão.

// dentro do método
if(evt.getsource() == botao){
// aqui dentro altere a visibilidade das janelas


}

Estou passando um código pra te ajudar.


import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import javax.swing.JLabel;

/**
 *
 * @author Gilmar
 */
public class Jpanel1 extends JFrame implements ActionListener {

    JButton button;

    public Jpanel1() {
        this.setTitle("JPANEL1");
        setSize(400, 300);
        setResizable(false);
        setLocationRelativeTo(null);

        button = new JButton("Next");

        Container cp = getContentPane();
        button.addActionListener(this);

        cp.add(button);

    }

    public void actionPerformed(ActionEvent e) {



        if (e.getSource() == button) {

            this.setVisible(false);
            Jpanel2 panel2 = new Jpanel2();
            panel2.setVisible(true);

        }
    }

    public static void main(String... a) {
        Jpanel1 jp = new Jpanel1();
        jp.setVisible(true);
    }
}

class Jpanel2 extends JFrame implements ActionListener {

    JButton button;

    public Jpanel2() {
        this.setTitle("JPANEL2");
        setSize(400, 300);
        setResizable(false);
        setLocationRelativeTo(null);

        button = new JButton("Back");

        Container cp = getContentPane();
        button.addActionListener(this);

        cp.add(button);

    }

    public void actionPerformed(ActionEvent e) {



        if (e.getSource() == button) {

            this.setVisible(false);
            Jpanel1 jpane1 = new Jpanel1();
            jpane1.setVisible(true);

        }
    }
}

Oi.

Use para isso o CardLayout. Aí vc não precisa ficar controlando o setVisible no braço.

Segue abaixo um tutorial que ensina a utiliza-lo:
http://java.sun.com/docs/books/tutorial/uiswing/layout/card.html

O próprio CardLayout já tem os métodos next e previous, que podem ser chamados diretamente pelo seu botão.
Mais fácil impossível.