0

所以我对 Java 编程还很陌生,我试图弄清楚 keyEventListeners 在 Java 中是如何工作的。我设法制作了一个小程序,您可以在其中操纵红色方块,但唯一的问题是,它只能在 QWERTY 键盘上运行。

这是检查 keyCode 的代码:

public void keyPressed(KeyEvent e){
    int c = e.getKeyCode();

    if(c == KeyEvent.VK_LEFT){
        velX = -1;
        velY = 0;
    }
    if(c == KeyEvent.VK_UP){
        velX = 0;
        velY = -1;
    }
    if(c == KeyEvent.VK_RIGHT){
        velX = 1;
        velY = 0;
    }
    if(c == KeyEvent.VK_DOWN){
        velX = 0;
        velY = 1;
    }
}

如何将其更改为 azerty 箭头键,以及(如果可能)两者?提前致谢。

4

1 回答 1

0

您可以打印您不认识的键码以及键字符(对于箭头键可能不是很有帮助)。通过这种方式,您可以找出不同类型键盘上的键码是什么。

箭头键在 azerty 键盘上是否有其他键码,或者这些键是否映射到相同的键码(KeyEvent.VK_LEFT 等)?如果您有其他关键代码,您可以将它们添加到 if 条件中。

在代码中:

public void customKeyPressed(KeyEvent e){
    int c = e.getKeyCode();

    if(c == KeyEvent.VK_LEFT || c == AZERTY_LEFT){
        velX = -1;
        velY = 0;
    } else if(c == KeyEvent.VK_UP || c == AZERTY_UP){
        velX = 0;
        velY = -1;
    } else if(c == KeyEvent.VK_RIGHT || c == AZERTY_RIGHT){
        velX = 1;
        velY = 0;
    } else if (c == KeyEvent.VK_DOWN || c == AZERTY_DOWN) {
        velX = 0;
        velY = 1;
    } else
        System.out.println(e.getKeyChar() + " = " + c);
}
于 2014-01-18T14:41:20.357 回答