Tenho o seguinte evento para fechar a janela do meu formulário, só que quando eu clico na opção não ele fecha assim mesmo.
Alguém pode me ajudar?
this.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent ex) {
String[] op = {“Sim”,“Não”};
int val = JOptionPane.showOptionDialog(null,“Deseja realmente Sair?”,“ATENÇÃO”,JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,op,op[0]);
if (val == 0){
try{
thread.stop();
}catch(NullPointerException ex){}
System.exit(0);
}
Não tenho condições de testar minha sugestão agora, mas vc pode fazer o seguinte:
existe um método que define a operação default realizada pela Frame quando alguém aperta o botão X no canto da janela: setDefaultCloseOperation(int i).
Vc pode enviar como argumento:
HIDE_ON_CLOSE ou
DISPOSE_ON_CLOSE ou
EXIT_ON_CLOSE ou
DO_NOTHING_ON_CLOSE
pegando construtor do objeto da sua janela e digitando nele:
vc fará com que nada aconteça (por default) quando o botão X for apertado.
Assim, quando o usuário clicar no X da sua janela, se abrirá o JOptionPane. Se ele apertar sim (val == 0) a janela fechará porque você pôs Thread.stop() e System.exit(0). Mas se ele apertar não (val != 0) a janela executará a sua operação default para o botão X: nada - graças ao DO_NOTHING_ON_CLOSE.
Essa solução não foi testada, mas pode ser que dê certo.
Boa sorte![/quote]
Ops, postamos na mesma hora, desculpe pelo post igual. A dica aí está bem completa!
Não tenho condições de testar minha sugestão agora, mas vc pode fazer o seguinte:
existe um método que define a operação default realizada pela Frame quando alguém aperta o botão X no canto da janela: setDefaultCloseOperation(int i).
Vc pode enviar como argumento:
HIDE_ON_CLOSE ou
DISPOSE_ON_CLOSE ou
EXIT_ON_CLOSE ou
DO_NOTHING_ON_CLOSE
pegando construtor do objeto da sua janela e digitando nele:
vc fará com que nada aconteça (por default) quando o botão X for apertado.
Assim, quando o usuário clicar no X da sua janela, se abrirá o JOptionPane. Se ele apertar sim (val == 0) a janela fechará porque você pôs Thread.stop() e System.exit(0). Mas se ele apertar não (val != 0) a janela executará a sua operação default para o botão X: nada - graças ao DO_NOTHING_ON_CLOSE.
Essa solução não foi testada, mas pode ser que dê certo.