JFrame e Jpanel

Pessoal, estou com um problema que não consigo reolver… vejam se conseguem me ajudar…

Tenho uma tela principal que está sendo iniciada normalmente…

public static void main(String args[]) { try{ final TelaPrincipal mainTela = new TelaPrincipal(); EventQueue.invokeAndWait(new Runnable() { @Override public void run() { mainTela.setVisible(true); } }); } catch(Exception e) { System.out.println("Erro: "+e.getMessage()); } }

Dentro dessa tela eu tenho um menu…
E, em um dos menus eu chamo um JPanel, que está em uma outra classe…

Menu:

JMenuItem mntmJogo = new JMenuItem("Jogo");
		mnOpes.add(mntmJogo);
		mntmJogo.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				TelaConfigTeste t = new TelaConfigTeste();
				setContentPane(t);
			}
		});e
		[/code]

Até aqui normal, a tela TelaConfigTeste abre normalmente, nesta tela eu coloquei um botão para fecha-la:
[code]JButton btnNewButton = new JButton("New button");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				setVisible(false);
			}
		});

Se eu clico no botão Fechar da TelaConfigTeste, ela desaparece normalmente, só que a primeira tela não aparece mais, fica tudo azul.

Pergunta:
Como faço para ir da primeira tela para a segunda tela e, quando fechar a segunda tela, voltar para a primeira exatamente com o que tinha nela antes?

Obrigado.

Você alterou o que quer que tivesse no fundo da sua tela para a TelaConfigTeste. O conteúdo antigo foi apagado.

Se você quer manter todas as telas ativas, leia sobre o CardLayout.

Hum, entendido ViniGodoy…

Vou ler sobre o CardLayout…

Mas suponhando que eu queira voltar e reativar o conteúdo anteior?

Como poderia fazer? recriar, carregar ou redesenhar tudo novamente da primeira tela?

Obrigado pela resposta.

Você poderia recriar o primeiro painel. Ou usar o CardLayout…

Agora que entendi sobre o CardLayout, gostaria de uma ajuda na avaliação.

Para um jogo de cartas que irá ser jogado via rede 1x1, qual dos layouts seria mais seguro e melhor indicado? o cardlayout ou o absolute?

Após conhecer ambos estou tendendo a utilizar o absolute. A duvida está no código que coloquei na criação deste tópico, vejam:

Após iniciar o programa construo a tela inical, com um desenha algo assim, então, clico no menu e vou para a segunda tela, quando clico OK na segunda tela (outra classe) queria voltar para a primeira tela com o desenho reconstuido.

Tem algum evento que incluo na primeira tela para ela saber que fechei a segunda e que é para reconstruir a primeira?
OU da segunda tela (outra classe) faço uma nova instancia da primeira (O que para mim é muito estranho isso, é como se fosse executar o programa novamente).

Agradeço se souberem algo ou se tiverem um showcase dessa navegação;

Até;

Um CardLayout onde, dentro dele, tem painéis com AbsoluteLayout.

Na verdade, o ideal é NUNCA usar AbsoluteLayout. Tem opções melhores como GridBagLayout ou GroupLayout.

AbsoluteLayout é aquele rapaz que dá problemas quando você precisa rodar o programa em alguma outra máquina ou talvez outro sistema operacional, onde o tamanho padrão das fontes é diferente (ou as próprias fontes são diferentes) e as coisas começam a ficar todas desconfiguradas (do tipo “em vez de aparecer o texto completo do JLabel, aparece um pedaço e depois as reticências”).