为了账号安全,请及时绑定邮箱和手机立即绑定

按下 cmd + Q 时确认程序退出

按下 cmd + Q 时确认程序退出

倚天杖 2021-11-03 14:15:28
我有一个带有 JFrame 的程序,我使用 WindowListener 来关闭程序。我使用以下方法提示有关保存程序中所做更改的消息:    public void windowClosing(WindowEvent e) {        if (condition) {            System.exit(0);        }但是,当我按 cmd + Q 时,我的程序将退出而我无法选择保存。有没有一种聪明的方法来确保在关闭程序之前我可以有一个条件,无论我是通过窗口 X 还是通过我的键盘短命令关闭它?或者我需要为此创建一个 KeyEvent 吗?
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

但是,当我按 cmd + Q 时,

我相信这是您从命令行输入的按键?

如果是这样,您也许可以使用addShutDownHook(...)Runtime类中找到的方法。


查看完整回答
反对 回复 2021-11-03
?
温温酱

TA贡献1752条经验 获得超4个赞

您需要更改 JFrame 上的 DefaultCloseOperation ,然后在 windowClosing 事件(或 System.exit(0) ,如上所示)上 dispose() 框架。这是一个简单的工作示例:


JFrame f = new JFrame();

f.setPreferredSize(new Dimension(300, 300));

f.pack();

f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

f.addWindowListener(new WindowAdapter() {

   @Override

   public void windowClosing(WindowEvent we) {

      if (condition) {

         f.dispose();

      }

   }

});

f.setVisible(true);

这样所有关闭操作都将使用您的条件。


查看完整回答
反对 回复 2021-11-03
  • 2 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信