fermat ha scritto:
una delucidazione please?
Se facessi qualche prova con le varie opzioni di setDefaultCloseOperation e tracciando i windowClosing/windowClosed di WindowListener, scopriresti che:
Se si chiude la finestra con le azioni standard delle finestre (pulsantino 'X', voce "Chiudi" nel menù contestuale o altro a seconda del S.O.), allora a seconda del defaultCloseOperation:
- se è EXIT_ON_CLOSE, viene invocato solo windowClosing
- se è DISPOSE_ON_CLOSE, viene invocato prima windowClosing poi windowClosed
- se è HIDE_ON_CLOSE, viene invocato solo windowClosing (e se era l'unica finestra, la JVM però non termina)
- se è DO_NOTHING_ON_CLOSE, viene invocato solo windowClosing e la finestra NON si chiude automaticamente. DO_NOTHING_ON_CLOSE serve per fare qualcosa di particolare prima (es. una richiesta di conferma) e poi devi chiuderla tu programmaticamente.
Se invece invochi esplicitamente il dispose(), allora solo il windowClosed viene invocato. Il windowClosing no. E se era l'unica finestra, allora la JVM può terminare.