Универсальный код клавиши (Java)

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

Я должен смочь определить, вводит ли пользовательское нажатие я или ключ M. На самом деле я делаю его как:

// If pressed the 'i' key
if ( evt.getKeyCode() == 73) {
    //
}
...

Я смотрю здесь, и с демонстрационным апплетом решают, что я вводит, распознан как 73 кода.

Это работает.

Но я работаю в Mac OS X, и я не знаю, пытаюсь ли, после того как я запустить это приложение на другой ОС или просто JVM, Это не будет работать.

Эти 73 являются универсальным кодом клавиши? Есть ли определенный способ программировать это так, он может выполнить и определить нажатую клавишу на окнах.

Спасибо!

5
задан Joe 20 February 2012 в 08:40
поделиться

3 ответа

Просто дополняет ответ Paul Brinkley .

- это 73 универсальный код ключа?

Да, это код ASCII код заглавной буквы «I» в этом случае. Смотрите Javadoc для KeyEvent.vk_a

Внимание

Несмотря на это совпадение , лучше не делать что-то вроде GetkeyCode () == 'A' - это может потерпеть неудачу в будущих реализациях.

2
ответ дан 18 December 2019 в 14:46
поделиться

Как полагают другие, использование констант из KeyEvent - правильный путь. Вам может понравиться посмотреть на источник этой игры ; это KeyEvent bonanza. Несмотря на то, что Java имеет отличную кросс-платформенную поддержку, вы умны в тестировании. Я использовал два основных подхода:

  • Размещение демо с открытым исходным кодом и запрос обратной связи.
  • Запуск других операционных систем в Sun's VirtualBox.
2
ответ дан 18 December 2019 в 14:46
поделиться

О, вы ищете константы keyEvent.vk_whathever.

if ( evt.getKeyCode() == KeyEvent.VK_I) {
    // user pressed 'i'
} else if ( evt.getKeyCode() == KeyEvent.VK_M) {
    // user pressed 'm'
}

См. Документы API ключевых устройств для отдыха. Должен иметь смысл.

9
ответ дан 18 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: