Как использовать Keylistener в апплете Java с помощью клавиш со стрелками

Я пытаюсь создать простую игру в Java-апплете, и мне нужно, чтобы мой персонаж двигался (в четырех направлениях), используя либо клавиши со стрелками, либо wasd (либо должен работать). Я не смог использовать стрелки, поэтому я попробовал это, который использует заглавные буквы WASD:

public void keyPressed(KeyEvent e) {

    char c = e.getKeyChar();

    if ( (c == KeyEvent.VK_W) || (c == KeyEvent.VK_A) || (c == KeyEvent.VK_S) || (c == KeyEvent.VK_D) )
    {
        setboard();
    }
}

Это работает именно так, как я хочу, но утомительно, когда я запускаю программу, приходится включать заглавные буквы.

Как я могу изменить эту программу, чтобы KeyListener мог распознавать строчные буквы и клавиши со стрелками? VK_UP, VK_DOWN, VK_w, VK_a и т. Д. Не работает.

2 ответа

Решение

Чтобы использовать стрелки, вам нужно использовать getKeyCode(), который возвращает int. Это также решит проблему с заглавными буквами. Как это:

int code = e.getKeyCode();

if (code == KeyEvent.VK_W) {
    //do stuff
    //repeat with VK_A, VK_S, and VK_D
}

В любом случае все константы KeyEvent - это вставки под капотом.

Вы можете преобразовать символ в верхний регистр перед сравнением, поэтому не имеет значения, верхний или нижний регистр:

 char c = Character.toUpperCase(e.getKeyChar());
Другие вопросы по тегам