2014-01-18 1 views
0

Итак, я довольно новичок в программировании на Java, и я пытаюсь понять, как работают keyEventListeners в Java. Мне удалось сделать крошечную программу, в которой вы управляете красным квадратом, но единственная проблема заключается в том, что она работает только на QWERTY-клавиатуре.KeyCodes для азерной клавиатуры в JAVA

Вот код, который проверяет 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, и (если это возможно), и другое? Спасибо заранее.

ответ

0

Вы можете печатать коды клавиш, которые вы не распознаете, вместе с символом клавиши (вероятно, не очень полезно для клавиш со стрелками). Таким образом, вы можете узнать, что такое коды клавиш на клавиатуре другого типа.

У клавиш со стрелками есть другие коды клавиш на звуковой клавиатуре или эти клавиши сопоставлены с теми же кодами клавиш (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); 
} 
+0

Спасибо большое, я чувствую себя идиотом, не думая о том System.out.println() для этого ха-ха. Опять же, спасибо кучу, это прекрасный ответ, и я могу продолжить кодирование сейчас :) – Krikke93

Смежные вопросы