用“真的很接近吗?”关闭 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对话的主要内容,如果未能解决你的问题,请参考以下文章