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);
}
}
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