用“真的很接近吗?”关闭 JFrame对话

Posted

技术标签:

【中文标题】用“真的很接近吗?”关闭 JFrame对话【英文标题】:Close JFrame with a "really close?" dialog 【发布时间】:2015-04-16 20:59:04 【问题描述】:

我有一个 JFrame,如果我按下右上角的关闭按钮,我会调用一个 JDialog 并询问用户是否真的想要关闭。

这是我的主 JFrame 中关闭按钮上的 ActionListener:

... //关闭监听器 addWindowListener(new WindowAdapter() //如果 Alt+F4 调用“wirklich schließ3n”窗口 @覆盖 公共无效窗口关闭(窗口事件事件) 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(); 我返回答案: 是返回真 没有返回false

谁能告诉我在我的 MainGuiWindow 中关闭 ActionListener 的 else 情况下该怎么做。 CloseDialog 是 dispose() 的关闭原因;但主窗口是 setVisible(false);但仍在运行

【问题讨论】:

你到底想在 else 块中做什么?? 尝试使用frame.setDefaultOperationOnClose(WindowConstants.x) -- 如果您要关闭,请使用 EXIT_ON_CLOSE 表示 x,如果没有,请使用 DO_NOTHING_ON_CLOSE。 【参考方案1】:

这是我的帮助

您需要将 JFrame 上的默认关闭操作设置为“什么都不做”:

jFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

为框架添加一个 WindowListener。

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

);

还有Refer Here

【讨论】:

以上是关于用“真的很接近吗?”关闭 JFrame对话的主要内容,如果未能解决你的问题,请参考以下文章

JFrame 使应用程序在关闭后仍保持运行

JFrame怎样关闭

JFrame关闭方法的问题

如何捕获 JFrame 的关闭按钮单击事件?

java swing中怎么实现点击jframe的关闭按钮后,弹出提示框?

如何捕获JFrame的关闭按钮单击事件?