Controle de Jdesktop e jInternalframes

2 respostas
O21

Help!!!

Preciso urgentemente de um exemplo de como controlar o desktop ao abrir e fechar um jInternalframe, mas não consegui…
já tentei windowlistener para modificar a intancia que controla a abertura dos jInternalframes, tentei tb usar o singleton mas não consegui…
se alguem tiver algum exemplo basico passe -me.

Eu fiz assim:

1º criei um desktop para colocar os jInternalframes.
2º criei os jInternalframes.
3º criei uma instancia do tipo boolean para dizer quando o jInternalframe está aberto.
4º até ai funcionou direitinho,mas quando fecho não consigo abrir novamente o jInternalframe que fechei pois não consigo mudar o valor da instancia para que o jInternalframe seja instanciado novamente.

2 Respostas

keller

Olá O2,

Existe o internalFrameListener ele indica varios eventos ocorridos
em sua JInternalFrame sao eles:

internalFrameActivated
internalFrameClosed
internalFrameClosing
internalFrameDeactivated
internalFrameDeiconified
internalFrameIconified
internalFrameOpened

Tem um exemplo disto aqui:
:arrow: http://www.java2s.com/Code/Java/Event/DemonstratingtheInternalFrameListener.htm

A API e explicacao de cada metodo esta aqui:
:arrow: http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/event/InternalFrameListener.html

Acredito que tu nao vai ter problemas,
pois identificar que a janela foi aberta tu ja fez…

Entao com o evento internalFrameClosed tu conseguira
saber quando a janela foi fechada…

Valeu? Até… :thumbup:
[s]

davidbuzatto

Kra, primeiro vc num vai precisar de nenhuma variábel para indicar se um JInternalFrame está aberto ou não.

O q vc deve fazer:

Instancie todos os seus JInternalFrames:

MeuInternalFrame1 f1 = new MeuInternalFrame1(); MeuInternalFrame1 f2 = new MeuInternalFrame2(); MeuInternalFrame1 f3 = new MeuInternalFrame3(); . . .

Muda a operação de fechamento para HIDE_ON_CLOSE (os frames não serã “jogados fora” quando fechados, apenas serão setados como invisíveis)

f1.setDefaultCloseOperation( JInternalFrame.HIDE_ON_CLOSE ); f2.setDefaultCloseOperation( JInternalFrame.HIDE_ON_CLOSE ); f3.setDefaultCloseOperation( JInternalFrame.HIDE_ON_CLOSE );

Adiciona no JDesktopPane…

Agora quando vc clicar em cada botao, este deve fazer o JInternalFrame visivel, e quando vc clicar no btn de fechar dele, ele ficará invisível.

Falow!

Criado 6 de abril de 2006
Ultima resposta 6 de abr. de 2006
Respostas 2
Participantes 3