我有一个JFrame,如果我按下右上角的关闭按钮,我会调用一个JDialog,询问用户是否真的想关闭。
这是我的主JFrame中关闭按钮上的ActionListener:
。。。//密切倾听者addWindowListener(new WindowAdapter(){//如果Alt+F4,则调用"wirklich-schließ3n"窗口@Overridepublic void windowCloseing(WindowEvent事件){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只有两个按钮(YES/NO)(按下任何按钮后,我调用dispose();在JDialog中按钮的ActionListeners中以及dispose()之后;我返回答案:yes返回true无返回错误
有人能告诉我在MainGuiWindow中的CloseActionListener的其他情况下该怎么办吗。CloseDialog是由于dispose()而关闭的;但是主窗口是setVisible(false);但仍在运行
这是我对的帮助
您需要将JFrame上的默认关闭操作设置为"什么都不做":
jFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
为框架添加WindowListener。
jFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
handleClosing();
}
});
请参阅此处