CardLayout

3 respostas
F

Galera,

É a primeira vez que estou usando CardLayout e estou apanhando. Tenho vários botoes, como eu faço pra que ao clicar em um botao, o card referente àquele botão fique em primeiro plano?

Grato e no aguardo,

3 Respostas

D

Vamos supor q vc crie um JPanel com o CardLayout e nele vc coloque 3 outros JPanel’s, ficaria assim:

JPanel cards= new JPanel(new CardLayout());

JPanel panel1= new JPanle();
JPanel panel2= new JPanle();
JPanel panel3= new JPanle();

cards.add(panel1,"primeiro");
cards.add(panel2,"segundo");
cards.add(panel3,"terceiro");

quando adicionamos um componente em um container com CardLayout colocamos uma String que identifica esse componente, no caso “primeiro”, “segundo” e “terceiro”.

agora para tornar um componente visivel é utilizado o método show do CardLayout, para isso vc deve ter uma isntancia do CardLayout da qual vc chamara o método show, e como parametro do método vc deve informar qual em qual container que possue o LayoutCard vc deseja realizar a vizualização e qual o componente contido neste container vc quer visualizar.

CardLayout layout= new CardLayout();

layout.show(cards,"primeiro");

isso chama o componente “primeiro” que esta em “cards”.

Não sei se ficou claro, qualquer coisa grita!!

F

Valew!

Agora, e se eu quiser chamar uma classe, por exemplo, Chat, que está fora da minha classe principal? Quero fazer a Chat aparece em um dos cards por exemplo? Tem jeito?

Se não entender grita que eu tento explicar melhor… hehe…

Grato e no aguardo,

D

vc pode adicionar um Component ao CardLayout no momento que vc quiser, poderia fazer assim:

Chat chat= new Chat();
cards.add(chat,"Chat");
layout.show(cards,"Chat");

Isso se Chat for um Component.

Mas ai vc tem que tomar cuidado: Quando um Component é sobreposto por outro ele ainda existe lá exatamente como vc deixou, portanto se vc for fazer um chat, quando clicar em um outro botão vc deve retirar o usuario da sala antes de exibir o novo component, senão ele vai sair da tela do chat mas vai continuar conectado e recebendo as mensagens, mas elas não vão ser visiveis pq o chat está em baixo de outras telas.

Agora, tratando-se de um chat não sei se essa é a melhor saida, mas vou deixar isso para o povo + experiente responder!

Criado 22 de maio de 2003
Ultima resposta 23 de mai. de 2003
Respostas 3
Participantes 2