Привет я программирую слушателя, что на основе клавиши, нажатой пользователем, должен действовать определенным способом.
Я должен смочь определить, вводит ли пользовательское нажатие я или ключ M. На самом деле я делаю его как:
// If pressed the 'i' key
if ( evt.getKeyCode() == 73) {
//
}
...
Я смотрю здесь, и с демонстрационным апплетом решают, что я вводит, распознан как 73 кода.
Это работает.
Но я работаю в Mac OS X, и я не знаю, пытаюсь ли, после того как я запустить это приложение на другой ОС или просто JVM, Это не будет работать.
Эти 73 являются универсальным кодом клавиши? Есть ли определенный способ программировать это так, он может выполнить и определить нажатую клавишу на окнах.
Спасибо!
Просто дополняет ответ Paul Brinkley .
- это 73 универсальный код ключа?
Да, это код ASCII код заглавной буквы «I» в этом случае. Смотрите Javadoc для KeyEvent.vk_a
Несмотря на это совпадение , лучше не делать что-то вроде GetkeyCode () == 'A'
- это может потерпеть неудачу в будущих реализациях.
Как полагают другие, использование констант из KeyEvent
- правильный путь. Вам может понравиться посмотреть на источник этой игры ; это KeyEvent
bonanza. Несмотря на то, что Java имеет отличную кросс-платформенную поддержку, вы умны в тестировании. Я использовал два основных подхода:
О, вы ищете константы keyEvent.vk_whathever.
if ( evt.getKeyCode() == KeyEvent.VK_I) {
// user pressed 'i'
} else if ( evt.getKeyCode() == KeyEvent.VK_M) {
// user pressed 'm'
}
См. Документы API ключевых устройств для отдыха. Должен иметь смысл.