Ajuda CardLayout

2 respostas
J

[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]

2 Respostas

matheuslmota

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

J

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:

private void MostraTela(String Nome){
       
        CardLayout Card = (CardLayout) this.Painel_Principal.getLayout();
        Card.show(this.Painel_Principal, Nome);      
    }

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.

Criado 3 de junho de 2012
Ultima resposta 4 de jun. de 2012
Respostas 2
Participantes 2