Java не создает правильное событие ключа AltGr - PullRequest
6 голосов
/ 10 января 2012

Я нажимаю клавишу AltGr в моем Java-приложении, но вместо получения KeyEvent с кодом ключа VK_ALT_GRAPH я получаю два события.Первый с кодом ключа VK_CONTROL, а второй с VK_ALT.

Это правильное поведение?

Использование Java 7 в Windows 7. Может быть воспроизведено с помощью демонстрационного приложения, найденного на http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html

Когда я нажимаю AltGr , он сообщает:

KEY PRESSED:
  key code = 17 (Ctrl)
  extended modifiers = 128 (Ctrl)
  action key? NO
  key location: left
KEY PRESSED:
  key code = 18 (Alt)
  extended modifiers = 640 (Ctrl+Alt)
  action key? NO
  key location: right
KEY RELEASED:
  key code = 17 (Ctrl)
  extended modifiers = 512 (Alt)
  action key? NO
  key location: left
KEY RELEASED:
  key code = 18 (Alt)
  extended modifiers = 0 (no extended modifiers)
  action key? NO
  key location: right

1 Ответ

4 голосов
/ 10 января 2012

в окнах, AltGr и Ctrl + Alt являются синонимами.в некоторых локалях (раскладки клавиатуры?) они оба обрабатываются как Ctrl + Alt , в других они оба обрабатываются как AltGr . Однако я неполностью уверен.

См. http://msdn.microsoft.com/en-us/library/windows/desktop/aa511502.aspx и используйте Ctrl - F , чтобы найти AltGr.

...