Depois, você precisa adicionar um listener para escutar quando seu usuário pressionou o botão de fechar. Para isso, você cria um windowListener:
this.addWindowListener(new WindowAdapter() {
@override
public void windowClosing(WindowEvent evt) {
suaFuncao();
dispose(); //pede para a janela fechar
}
}
Note que como agora é você quem dá o comando dispose() explicitamente, você poderia até exibir ali uma confirmação, perguntando se o cara quer mesmo fechar a janela ou não, e cancelar o fechamento, caso ele responda não.
O
oitathi
Ma sue tenho q imporatar alguma coisa? Desculpe a pergunta cretina, mas quando eu digito this.addWindow… ele não reconhece esse método
V
ViniGodoy
Não precisa importar nada.
Pode colocar o código completo da sua janela?
O
oitathi
publicclassBottomFrameextendsJInternalFrame{publicBottomFrame(parametrosparaoconstrutor){this.id=id;this.act1=act1;this.act2=act2;this.act3=act3;this.act4=act4;this.act5=act5;setSize(700,550);setLocation(0,25);setClosable(true);setVisible(true);setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);this.addWindowListener(newWindowAdapter(){// aqui jah não reconhece}
O
oitathi
Então, eu acho q o WindowListner soh funciona pra JFrame, mas eu tô usando JInternalFrame… será q tem a ver?
Porém não tah funcionando… ele manda eu implentar todos o métodos do InternalListner…
e mesmo quando eles são implentados, isso não funciona!!!
Por favor!!!
:roll:
V
ViniGodoy
addInternalFrameListener (new InternalFrameAdapter() {
@Override
public void internalFrameClosing (InternalFrameEvent ife){
JOptionPane.showMessageDialog(null, "Teste");
dispose();
}
} );
O
oitathi
Valeu Viny!!! Eh isso ai!!!
R
ricardofrr
Só um detalhe ai, porque o dispose() não estava funcionando aqui, apesar da janela fechar, a instancia ainda continua rodando, eu uso o metodo System.exit(n);
onde n é uma variavel int que retorna na minha caixa de dialogo