【问题标题】:Control + W to exit systemControl + W 退出系统
【发布时间】:2018-11-28 08:50:00
【问题描述】:

我正在开发一款游戏,在这里我希望最终用户按 Ctrl + W 退出系统。

这是我使用的代码:

int key = e.getKeyCode();
if(key == KeyEvent.VK_CONTROL && key == KeyEvent.VK_W) System.exit(1);

...但它似乎没有工作

谁能告诉我我的代码有什么问题?

提前致谢!

【问题讨论】:

  • 好吧,key(作为int)一次只能是一个值,所以它永远不会同时是两个键......
  • 那么有没有一种方法可以使用我在 Java 中的想法?
  • 您需要将两个 KeyEvent 常量组合在一起。
  • @Rich 但我有另一个命令,最终用户按 W 向上移动

标签: java keycode system.exit


【解决方案1】:
KeyStroke keyExit = KeyStroke.getKeyStroke(KeyEvent.VK_CONTROL, KeyEvent.VK_W); 
Action performExit = new AbstractAction("Exit") {  
    public void actionPerformed(ActionEvent e) {     
        //exit method
    }
};

试试这种例子。

【讨论】:

  • 代码似乎不起作用...您在哪里评论 //exit method 我输入了 System.exit(1);
【解决方案2】:

我会尝试以下方式:

int key = e.getKeyCode();
if(key == (KeyEvent.VK_CONTROL | KeyEvent.VK_W)) System.exit(1);

虽然这未经测试并且来自记忆。

【讨论】:

  • 但是我有另一个控件,它使用 W 作为玩家向上移动,所以如果我按 W,系统仍然会退出
  • @Star 你看到你要求的不同了吗?
  • @Stultuske 是的......在这里,如果我从键盘上按 W,它也会退出系统。
  • 该 |是 OR,所以只有一个键就足以触发它。但由于 Netbeans 在菜单中使用 CTRL+[] 快捷方式,因此应该可以。也许检查他们的代码
  • 我使用 Eclipse 作为我的 JDK
猜你喜欢
  • 2020-06-03
  • 2016-08-06
  • 1970-01-01
  • 2019-01-26
  • 2017-12-02
  • 1970-01-01
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
相关资源
最近更新 更多