JButton ação para voltar a janela anterior

Galera blz?

Sou novo no forum e no mundo JAVA. Já adiquiri até um ditado para mim, que li em um dos forum “Tem que errar muito até que se possa compreender e programar em JAVA” e é verdade!! Mas deixando o blá, blá de lado e indo para o assunto principal tou fazendo um sisteminha bancário, só para prática mesmo, tou começando pelas os forms utilizando o Swing bem tou querendo colocar o evento do botão voltar para que ele volte para o form anterior e não sei como fazer isso :cry: já tentei, já pesquisei em tudo que canto e nada!!! Vale a pena ressaltar que tou trabalhando em cima de um unico JFrame quando clico no botão depositar, por exemplo, o evento é de remover todos componentes desse Frame e add um novo painel com outros componentes como novos botão. abaixo segue o um trecho do programa para que vcs possam me ajudar se for possivel:

[code]public class MenuPrincipalDoCliente extends JFrame implements WindowListener{
private JButton botaoSacar, botaoDepositar, botaoTranseferir, botaoCC,
botaoCPoupanca,botaoCancelar,botaoVoltar;
private JPanel painelMenuOpcoes, painelMenuOpcoes2,painelMenuOpcoes3;
private static MenuPrincipalDoCliente instancia = null;

public MenuPrincipalDoCliente(){

	painelMenuOpcoes  = new JPanel(new GridLayout(0,1,100,20));
	painelMenuOpcoes2 = new JPanel(new GridLayout(0,1,100,20));
	painelMenuOpcoes3 = new JPanel(new GridLayout(0,1,100,20));

	botaoVoltar = new JButton("Voltar");
	botaoCancelar = new JButton("Cancelar");
	botaoCC = new JButton("Conta Corrente");
	botaoCPoupanca = new JButton("Conta Poupança");	
	botaoDepositar = new JButton("Depositar");
	botaoSacar = new JButton("Sacar");
	botaoTranseferir = new JButton("Transferência");
	
	painelMenuOpcoes.add(botaoDepositar);
	painelMenuOpcoes.add(botaoSacar);
	painelMenuOpcoes2.add(botaoTranseferir);
	painelMenuOpcoes2.add(botaoCancelar);

	this.setLayout(new FlowLayout());
	this.add(painelMenuOpcoes,FlowLayout.LEFT);
	this.add(painelMenuOpcoes2, FlowLayout.CENTER);
	this.setTitle("Teste");
	this.setSize(350,300);
	this.setLocationRelativeTo(null);
	this.addWindowListener(this);
	
		
	botaoDepositar.addMouseListener(new MouseAdapter(){
		public void mouseClicked(MouseEvent e) {
			getInstance().acaoDepositar();
		}			
	});
	
	botaoVoltar.addMouseListener(new MouseAdapter(){
		public void mouseClicked(MouseEvent e) {
			getInstance().acaoVoltar();
		}			
	});


}

public void acaoDepositar(){
	getContentPane().repaint();
	System.out.println(this.getName());
	getContentPane().removeAll();
	this.add(painelMenuOpcoes3);
	this.getPainelMenuOpcoes3().add(getBotaoCC());
	this.getPainelMenuOpcoes3().add(getBotaoCPoupanca());
	this.getPainelMenuOpcoes3().add(getBotaoVoltar());
	validate();
			
}

public void acaoVoltar(){
	//NÃO SEI O QUE FAÇO HELPPPPP!!!!!!!!!!!!!!!!!!!!
	
	validate();
	
}[/code]

Olá
Um jeito é vc passar a referencia do frame anterior para esse frame, e na hora do
evento vc setVa visivel false para o frame atual e visivel true para o frame anterior.

  public void acaoVoltar(){  
        this.setVisivel(false);
        frameAnterior.setVisivel(true);
     }  
A priori é assim, mas se houve uma solução mais elegante eu não conheço!! rsrsrs

Espero ter ajudado
Flwssss

Thiago,

É uma boa, porém ele irá abrir um outro JFrame, sendo que eu estou trabalhando no mesmo JFrame só faço removerAll() tdos os componentes e colocar os novos que quero mostrar. Se tiverem uma outra solução agradeceria muito!

Att,

Leonardo Couto Conrado.

Olá
Se vc usar um esquema de uma classe reponsável pelo JFrame… e vc usar panéis,
dai vc setContentPane() e depois faz repaint ou validate
Acho que também pode dar certo!!

Flwss