正确的方法是设置
Jframe.setDefaultCloseOperation到
DO_NOTHING_ON_CLOSE创建窗口时。然后仅致电
setVisible(false)或
dispose()当您的用户接受关闭时,或者在不接受关闭时不执行任何操作。
这样做的全部目的
Jframe.setDefaultCloseOperation只是为了避免实施
WindowListeners最简单的操作。这些默认关闭操作执行的操作非常简单。
编辑:
我添加了我正在描述的解决方案。假设您要完全删除框架。
frame.setDefaultCloseOperation(setDefaultCloseOperation);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()) frame.dispose(); }}


