Подтвердить что ты не робот

Как проверить, была ли клавиша нажата клавишей со стрелкой в ​​Java KeyListener?

Можете ли вы помочь мне реорганизовать этот код:

public void keyPressed(KeyEvent e)
    {

    if (e.getKeyCode()==39)
    {
                //Right arrow key code
    }

    else if (e.getKeyCode()==37)
    {
                //Left arrow key code
    }

    repaint();

}

Укажите, как проверить клавиши со стрелками вверх и вниз. Спасибо!

4b9b3361

Ответ 1

public void keyPressed(KeyEvent e) {
    int keyCode = e.getKeyCode();
    switch( keyCode ) { 
        case KeyEvent.VK_UP:
            // handle up 
            break;
        case KeyEvent.VK_DOWN:
            // handle down 
            break;
        case KeyEvent.VK_LEFT:
            // handle left
            break;
        case KeyEvent.VK_RIGHT :
            // handle right
            break;
     }
} 

Ответ 2

public void keyPressed(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_RIGHT ) {
            //Right arrow key code
    } else if (e.getKeyCode() == KeyEvent.VK_LEFT ) {
            //Left arrow key code
    } else if (e.getKeyCode() == KeyEvent.VK_UP ) {
            //Up arrow key code
    } else if (e.getKeyCode() == KeyEvent.VK_DOWN ) {
            //Down arrow key code
    }

    repaint();
}

Коды KeyEvent являются частью API: http://docs.oracle.com/javase/7/docs/api/java/awt/event/KeyEvent.html

Ответ 3

Только для завершения ответа (с помощью KeyEvent - путь), но стрелка вверх - 38, а стрелка вниз - 40, поэтому:

    else if (e.getKeyCode()==38)
    {
            //Up arrow key code
    }
    else if (e.getKeyCode()==40)
    {
            //down arrow key code
    }

Ответ 4

Если вы имеете в виду, что хотите присоединить это к своей панели (Окно, с которым вы работаете).

тогда вам нужно создать внутренний класс, который простирается от интерфейса IKeyListener, а затем добавить этот метод в класс.

Затем присоедините этот класс к вашей панели: this.addKeyListener(новый подкласс());

Ответ 5

Вместо фактического кода вы должны использовать такие вещи, как: KeyEvent.VK_UP.

Как вы хотите его реорганизовать? Какова цель рефакторинга?