gpt4 book ai didi

Mac 上的 Java 按键事件

转载 作者:行者123 更新时间:2023-11-29 03:52:57 27 4
gpt4 key购买 nike

我正在尝试编写一个使用按键事件来激活方法的程序。该代码适用于 Windows 机器,但当转移到 Mac 时,它不会响应我按下的“空格键”。我认为这与使用的不同键码有关。

public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
System.out.println("SPACEBAR");
grid.stepGame();

}
}

我有什么想法可以让这个在 Mac 上运行吗?

编辑 - 使用下面的答案解决了问题 - 请注意,尽管在 Mac 上框架似乎永远不会自动重新获得焦点,因此为什么 keylistener 不起作用是另一个 JComponent 被激活。

最佳答案

我不确定您的具体问题,但可以肯定的是,如果您改用 key bindings而不是主要听众,您的问题就会消失。来自 Java 教程站点:

Note: To define special reactions to particular keys, use key bindings instead of a key listener.

举个例子

// Component that you want listening to your key
JComponent component = ...;
component.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0),
"actionMapKey");
component.getActionMap().put("actionMapKey",
someAction);

关于Mac 上的 Java 按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7848486/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com