关闭JFrame与"真的很接近?"对话

时间:2015-02-16 11:01:08

标签: java swing jframe oncloselistener

我有一个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);但仍在运行

1 个答案:

答案 0 :(得分:1)

这是我的帮助

您需要在JFrame上将默认关闭操作设置为“不执行任何操作”:

jFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

为框架添加一个WindowListener。

jFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
    handleClosing();
}
});

Refer Here