JAVA中用于azerty键盘的KeyCodes

时间:2014-01-18 13:38:45

标签: java keyevent event-listener qwerty

所以我对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箭头键,以及(如果可能)两者? 提前谢谢。

1 个答案:

答案 0 :(得分: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);
}