簡體   English   中英

按下cmd + Q確認程序退出

[英]Confirm program quit when cmd + Q is pressed

我有一個帶有JFrame的程序,我使用WindowListener來關閉程序。 我使用以下方法來提示有關保存程序中所做更改的消息:

    public void windowClosing(WindowEvent e) {
        if (condition) {
            System.exit(0);
        }

但是,當我按cmd + Q時,我的程序將退出,而無需選擇保存。 是否有一種聰明的方法來確保我可以在關閉程序之前具備條件,而不管我是通過窗口X還是通過鍵盤快捷鍵來關閉它? 還是我需要為此創建一個KeyEvent?

您需要在JFrame上更改DefaultCloseOperation,然后在windowClosing事件(或如上所示的System.exit(0))上處理框架。 這是一個簡單的工作示例:

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);

這樣,所有關閉操作都將使用您的條件。

但是,當我按cmd + Q時,

我相信這是您從命令行輸入的按鍵嗎?

如果是這樣,您也許可以使用Runtime類中的addShutDownHook(...)方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM