Ho un frame e voglio chiedere quando l'utente lo chiude per salvare il documento. Ma se annullano, la cornice non dovrebbe chiudersi.Come può un utente Swing WindowListener JFrame di chiusura
frame.addWindowListener(new SaveOnCloseWindowListener(fileState));
...
public class SaveOnCloseWindowListener extends WindowAdapter {
private final FileState fileState;
public SaveOnCloseWindowListener(FileState fileState) {
this.fileState = fileState;
}
public void windowClosing(WindowEvent e) {
if (!fileState.onQuit())
cancelClose();
}
}
FileState controlla se il documento è sporco. Se non lo è, non fa nulla e restituisce il vero. Se è sporco, chiede all'utente se vuole salvare (SÌ/NO/ANNULLA). Se l'utente annulla a questo punto, dovrebbe interrompere la finestra Chiusura.
Tutti i suggerimenti che ho visto in rete implicano esplicitamente l'uscita dal metodo windowClosing, annullando quindi l'uso di JFrame.setDefaultCloseOperation() e la duplicazione del codice in JFrame.processWindowEvent().
In realtà ho una soluzione sporca, ma vorrei vedere se ci sono quelli più puliti.
Acclamazioni
possibile duplicato di [Come posso fermare la chiusura di un'applicazione Java] (http://stackoverflow.com/questions/8469097/how-can-i-stop-the-closing-of-a- java-application) –