PDA

View Full Version : [Java] Chiusura JDialog modale


Soel
05-04-2009, 18:24
Salve a tutti.
Ho un piccolo problema con l'interfaccia grafica di un mio programma. Appena aperto, il programma mostra un ampio JFrame principale e davanti ad esso un JDialog modale che richiede alcune informazioni. Ciò che vorrei sarebbe fare in modo che, se l'utente preme il tasto di chiusura di default del JDialog (la x nella barra in alto, per intenderci), il programma si chiuda completamente. Tuttavia se scrivo nel JDialog setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE), nel momento in cui clicco sul tasto di chiusura non succede assolutamente niente. Vorrei quindi sapere quali sono le istruzioni giuste per far comportare il JDialog come desidero.
Grazie anticipatamente per l'aiuto.

PGI-Bis
05-04-2009, 18:29
Qualcosa dovrebbe succedere. Per la precisione dovrebbe sparare una IllegalArgumentException. EXIT_ON_CLOSE infatti non è usabile con le JDialog.

Avessero usato degli enumerativi sarebbe stato meglio ma è un API anzianotta.

Comunque per fare quel che desideri è sufficiente dire:

dialog.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

Sarebbe tuttavia preferibile che tu eliminassi tutte le finestre con "dispose()" anzichè invocare System.exit(0) perchè l'esecuzione di quest'ultima istruzione è soggette a restrizioni di sicurezza.

Soel
07-04-2009, 09:37
Grazie mille!