使用"really close?"对话框关闭 JFrame



我有一个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();
}
});

请参阅此处

最新更新