JInternalFrame fecha e não abre mais

Ola,

Tenho um Mdi com um menu que chama uma janela, até ai tudo bem.
Mas quando eu fecho a janela e a chamo novamente pelo menu nada acontece.
Eu gostaria de abrir e fechar, sem ter que usar a técnica de deixar invisível e visível.

Esse é o evento que chama a janela pelo menu:

E essa é minha janela problematica:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;
import javax.swing.JDesktopPane;
import javax.swing.JInternalFrame;

 
 public class InternalFrameBancos extends JInternalFrame implements ActionListener
 {   
      public InternalFrameBancos(JDesktopPane desktop)
     {
          
        super("Bancos",false,true,false,false);
             
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        
        desktop.add(this);

        setSize(800,600);
     
     }
      
     public void actionPerformed(ActionEvent event)
    {
         setVisible(true);
     }
 }

Espero que alguem possa me ajudar, Obrigado!

[quote=lsf]
public class InternalFrameBancos extends JInternalFrame implements ActionListener
{
public InternalFrameBancos(JDesktopPane desktop)
{

    super("Bancos",false,true,false,false);
         
    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    
    desktop.add(this);

    setSize(800,600);
 
 }      

[/code]

Espero que alguem possa me ajudar, Obrigado![/quote]

troca o DISPOSE_ON_CLOSE por HIDE_ON_CLOSE

Valeu cara funcionou, mas eu gostaria de entender melhor pq.
Antes de postar aqui eu pesquisei e achei soluções(que pra mim não funcionaram) como:

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

ou controlando o fechamento com dispose()

     setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

    
     this.addInternalFrameListener(  
         new InternalFrameAdapter(){  
             public void internalFrameClosing(InternalFrameEvent e) {  
                int result = JOptionPane.showConfirmDialog(null,"Deseja sair?","Sair",JOptionPane.YES_NO_OPTION);  
                  
                if (result == JOptionPane.YES_OPTION) {             
                   InternalFrameBancos.this.setVisible(false);  
                   InternalFrameBancos.this.dispose();             
                }       
             }  
         }  
     );

Não quero só fazer funcionar, quero entender oque esta acontecendo tb.
Muito obrigado pela ajuda

cara da uma estudada em swing

Cara, bem que eu to tentando usar o javadoc. Mas sabe como é, inglês de neandertal não ajuda.
Vc conhece alguma fonte em pt_BR :smiley: .

Valeu!