[size=18]Pessoal, preciso de uma ajudinha, tenho um JFrame com CardLayout, e quando o usuário clica em um botão eu carrego um JPanel que está em uma classe externa, tudo nele funciona.
Porém quando o usuario utiliza o botão sair desse JPanel, ele sempre volta para o Painel Principal do Cardlayout, existe alguma forma de eu setar para qual JPainel do Cardlayout ele deve ir.
Exemplo> Jframe > Painel1 > vai para Painel 3 (classe externa) > volta para o Painel2
Sendo estes Painel1 e Painel2 membros do Cardlayout.
Agradeço desde já! Obrigadãoooooooo[/size]
Seus panels devem ser adicionados ao cardLayout da seguinte maneira:
frame.setLayout(new Layout(0, 0));
frame.add(panel1, "Panel1");
frame.add(panel2, "Panel2");
frame.add(panel3, "Panel3");
O segundo parâmetro é o objeto que o gerenciador de layout usará para identificar o componente (panel) dentro do container(frame). Nesse caso, o objeto identificador usado é uma String.
Para setar qual panel será mostrado pelo seu frame, faça assim:
CardLayout cardLayout = (CardLayout)frame.getLayout();
cardLayout.show(frame, "Panel1"); // o panel 1 será mostrado
cardLayout.show(frame, "Panel2"); // o panel 2 será mostrado
cardLayout.show(frame, "Panel3"); // o panel 3 será mostrado
Opa Matheus vlw pela ajuda,
Mas assim olha como esta o meu código, acredito que esteja correto, porém o que eu desejo não acontece:
- Tenho uma classe que Extend JFrame
public class Principal extends JFrame
- Tenho uma classe que Extend JPanel
public class Segundario extends JPanel
Durante uma etapa do código no Jframe eu chamo o JPanel assim:
Segundario S = new Segundario();
this.Painel_Principal.add(S, "Segundario");
MostraTela("Segundario");
O metodo MostraTela é este:
[code]private void MostraTela(String Nome){
CardLayout Card = (CardLayout) this.Painel_Principal.getLayout();
Card.show(this.Painel_Principal, Nome);
}[/code]
Sendo assim eu tenho no Jframe um Cardlayout com vários paineis, porém um desdes paineis chama o Painel Segundario, e este apos executar suas ações dou um setVisible(false), contudo voltando ao Jframe ele sempre volta para o painel inicial, e não o painel que chamou o painel Segundario.