我有一个JFrame,如果我按下右上角的关闭按钮,我会调用一个JDialog并询问用户是否真的要关闭。
这是我主JFrame中关闭Button上的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中的按钮的ActionListeners中以及在dispose()之后;我返回答案: 是的返回true 没有返回false
有人可以告诉我在MainGuiWindow中关闭ActionListener的else情况下该怎么做。 CloseDialog是dispose()的关闭原因;但主窗口是setVisible(false);但仍在运行
答案 0 :(得分:1)
这是我的帮助
您需要在JFrame上将默认关闭操作设置为“不执行任何操作”:
jFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
为框架添加一个WindowListener。
jFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
handleClosing();
}
});