У меня есть фрейм, и я хочу запросить, когда пользователь закроет его, чтобы сохранить документ.Но если они отменяются, кадр не должен закрываться.
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 проверяет, не загрязнен ли документ.Если это не так, он ничего не делает и возвращает истину.Если он грязный, он спрашивает пользователя, хочет ли он сохранить (ДА / НЕТ / ОТМЕНА).Если пользователь отменяет в этой точке, он должен прервать windowClosing.
Все предложения, которые я видел в сети, включают явный выход из метода windowClosing, таким образом, переопределяя использование JFrame.setDefaultCloseOperation (), идублирование кода в JFrame.processWindowEvent ().
У меня действительно есть грязный раствор, но я хотел бы посмотреть, есть ли более чистые.
Приветствия