Java Swing - 按下的键未释放(有时)

标签 java swing keylistener

对于游戏,我使用 KeyListener 来了解何时按下某个键。

public synchronized void keyPressed(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
        keyRightIsDown = true;
    }
}

public synchronized void keyReleased(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
        keyRightIsDown = false;
    }
}

这有效率为 99.9%。但有时(通常足够),当释放按键时,不会调用 keyReleased (导致游戏角色继续向右移动 - 再次按下该键可以解决问题)。

[也许相关:]我使用 OSX 10.6,并且经常安静地同时按下多个键。

如何才能 100% 完成这项工作?

最佳答案

也许看看KeyBindings会更好,可以轻松为关键操作构建Listener,如 KeyListener

关于Java Swing - 按下的键未释放(有时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6731686/

相关文章:

Java KeyListener - 按住按键时释放按键

java - 如何在按下按钮时重复调用方法(Java with Swing)?

java - 从不同的 JComponent 获取信息

Java 2d 数组与图 block 的坐标错误

java - LWJGL Display.set宽度/高度?

java - 使用 Java GUI 与 KeyListener 进行益智游戏?

java - Java 无法接收键盘输入

java - FTP 连接超时 421 : parser error

java - JFreeChart 错过了一些鼠标点击

java - 如何运行 Docker 容器但不复制密码文件来组装镜像,还有其他选项吗?