我有一个 JFrame,如果我按下右上角的关闭按钮,我会调用一个 JDialog 并询问用户是否确实要关闭。
这是我的主 JFrame 中关闭按钮上的 ActionListener:
...
//close listener
addWindowListener(new WindowAdapter() {//invoke "wirklich schließ3n" window if Alt+F4
@Override
public void windowClosing(WindowEvent event) {
MainGuiWindow.this.saveSettings();
CloseDialog cd = new CloseDialog(MainGuiWindow.this);
if (cd.getResult()) {
System.exit(0);
} else {
//MainGuiWondow is "setVisible(false)" but still running | I don't know how to fix it
MainGuiWindow.this.setVisible(true);//doesn't work
}
}
});
JDialog 只有两个按钮(是/否)(按下任何按钮后,我调用 dispose(); 在 JDialog 中按钮的 ActionListener 中以及在 dispose() 之后;我返回答案: yes 返回 true 不返回 false
任何人都可以告诉我在 MainGuiWindow 中的 Close ActionListener 的其他情况下该怎么做。 CloseDialog因dispose()而关闭;但主窗口是 setVisible(false);但仍在运行
最佳答案
这是我对你的帮助
您需要将 JFrame 上的默认关闭操作设置为“不执行任何操作”:
jFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
为框架添加一个 WindowListener。
jFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
handleClosing();
}
});
关于java - 使用 "really close?"对话框关闭 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28539909/