Как определить нажатие клавиши Java Swing?

Я делаю игру на графическом интерфейсе Java Swing, и мне нужно проверить нажата ли клавиша управления, в этом случае "w". Желательно в одном классе с игрой и минимум кода. Должно получиться что-то такое:

if(key w pressed) {
    playerY += 1;
}

Ответы (1 шт):

Автор решения: kio

Используйте Key Listener и метод keyPressed(KeyEvent e). Например проверяйте код нажатой клавиши, и в зависимости от значения вызывайте обработчик.

Пример:

    JPanel panel = new JPanel();
    /*
    ...
    */ 
    panel.addKeyListener(new KeyAdapter() {
         
        public void keyPressed(KeyEvent e) {
            if(e.getKeyCode() == 87)
                System.out.println("Нажата W");
            else if(e.getKeyCode() == 65)
                System.out.println("Нажата A");
            else if(e.getKeyCode() == 83)
                System.out.println("Нажата S");
            else if(e.getKeyCode() == 68)
                System.out.println("Нажата D");             
        }
    });

Более детально - https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html

→ Ссылка