Как проверить, нажата ли клавиша левой угловой скобки?

В Java я проверил список кодов виртуальных ключей, и для "<" не существует VK. Я пробовал "VK_LESS" с моей программой (звучит так, как будто это может быть '<'), но это тоже не сработало.

Мне интересно, нужно ли мне проверять, нажата ли клавиша Shift, а затем проверить, нажата ли клавиша запятой, но я не уверен, как это сделать в классе KeyHandler, используя оператор switch для метода keyPressed.

3 ответа

Решение

KeyHandler keyPressed метод получит KeyEvent, Ты можешь позвонить isShiftDown() на что KeyEvent чтобы увидеть, нажата ли клавиша Shift в данный момент.

public void keyPressed(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_COMMA && e.isShiftDown()) {
         // do your thing!
    }
}

Вы также можете попробовать сделать:

public void keyTyped(KeyEvent e) {
    if (e.getKeyChar() == '<') {  
         ...
    }
}

Обратите внимание на использование keyTyped скорее, чем keyPressed, keyTyped срабатывает только тогда, когда нажатие клавиши выводит символ, а не при каждом нажатии клавиши. Этот метод больше подходит для других типов клавиатуры. Но я не пробовал, поэтому не знаю, сработает ли это вообще.

Вы можете использовать метод KeyEvents.getKeyChar()

public void keyPressed(KeyEvent e) {
    if (evt.getKeyChar().equals("<")) {
         /*your code*/
    }
}

Я полагаю, что вы хотите использовать VK_LESS и VK_GREATER для "<" и ">" соответственно.

Другие вопросы по тегам