java.lang.IllegalArgumentException: defaultCloseOperation must be one of: DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, or DISPOSE_ON_CLOSE
at javax.swing.JDialog.setDefaultCloseOperation(Unknown Source)
na linha de codigo que eu seto o DefaultCloseOperation eu passo o valor “3” que na JDialog corresponde a EXIT_ON_CLOSE, aqui este erro não ocorre porém ocorre no cliente.
Desconfio que seja a versão do Java instalado e que nesta versão a constante EXIT_ON_CLOSE tenha outro valor.
No Java 1.6 esse EXIT_ON_CLOSE não funciona! Eu estava desenvolvendo uma aplicação com Java 1.5, mandei para outra pessoa testar e ela me reportou que não abria nenhuma tela… Porém na minha funcionava.
O problema de usar DISPOSE_ON_CLOSE quando se quer matar a aplicação é que apesar da janela ser fechada a JVM continua rodando. Cara, com a versão da JVM 1.6 que estou usando, o EXIT_ON_CLOSE funciona sem problemas. Porém, caso aí não funcione de jeito nenhum, você pode tentar uma abordagem “alternativa”, como por exemplo fechar a janela na “marra” reescrevendo o código que trata o evento quando o usuário tenta fechar a janela:
...
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
//De repente aqui você pode colocar até um diálogo de confirmação perguntando
//se o usuário deseja ou não fechar a janela.
System.exit(0);
}
});
...