Voltar Cardlayout [RESOLVIDO]

5 respostas
G

Bom Dia,

Estou com o seguinte problema, tenho um Jpanel com cardlaout que abre um outro jpanel em outra class(esse abre sem problema), o problema esta em voltar para o primeiro jpanel
Não sei se fui explícito.

se fosse na mesma classe saberia como fazer

cardLayout.show(pDir, "Painel2");

o problema é o botao estar em outra class.

Grato

5 Respostas

M

Você precisa então expor essa possibilidade para outras classes. Na classe que tem o CardLayout, crie um método (que recebe qual painel será mostrado) para trocar a ordem.

G

Como assim será que pode dar um exemplo?;X

G

Tentei assim mas não da…

Jpanel com o cardlayout

public void teste(){ // cardLayout.first(pFundo); cardLayout.show(pFundo, "Pa1"); System.out.println("jsadkjda"); }

Jpanel aberta

public void actionPerformed(ActionEvent e) { Procurar po = new Procurar(); po.teste(); }

M

GuilhermeG:
Tentei assim mas não da…

Jpanel com o cardlayout

public void teste(){ // cardLayout.first(pFundo); cardLayout.show(pFundo, "Pa1"); System.out.println("jsadkjda"); }

Jpanel aberta

public void actionPerformed(ActionEvent e) { Procurar po = new Procurar(); po.teste(); }


O problema é que você não pode criar um novo objeto Procurar: você deve chamar o método do que já existe (talvez você tenha que passá-lo via construtor). Veja:

// isso está na classe Procurar

// coloque o método teste() do jeito que você fez mesmo

// na hora de chamar a outra janela, faça mais ou menos assim:
OutraJanela outra = new OutraJanela(this);
outra.setVisible(true);

E na sua classe da OutraJanela, faça assim:

private Procurar parent;
// o construtor recebe a janela que o abriu
public OutraJanela(Procurar parent) {
    this.parent = parent;
}

// .......

// e no método actionPerformed, você chama assim:
partent.teste();

Entendeu a lógica?

G

Não só entendi como resolveu o meu problema :-o :-o :-o :-o :-o

Muito Obrigado marco

Criado 6 de janeiro de 2010
Ultima resposta 7 de jan. de 2010
Respostas 5
Participantes 2