【问题标题】:KeyCodes for azerty keyboard in JAVAJAVA中azerty键盘的KeyCodes
【发布时间】:2014-02-07 21:42:47
【问题描述】:

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

【问题讨论】:

    标签: java keyevent event-listener qwerty


    【解决方案1】:

    您可以打印您不认识的键码以及键字符(可能对箭头键没有多大帮助)。这样您就可以找出不同类型键盘上的键码是什么。

    箭头键在 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);
    }
    

    【讨论】:

    • 非常感谢,我觉得自己像个白痴,没有想到 System.out.println() 哈哈。再次感谢大家,这是一个完美的答案,我现在可以继续编码 :)
    猜你喜欢
    • 2016-01-19
    • 2021-11-14
    • 2012-05-28
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 2020-07-29
    相关资源
    最近更新 更多