我在我的 Java 应用程序中按下 AltGr 键,但我没有收到键码为 VK_ALT_GRAPH 的 KeyEvent,而是收到了两个事件。第一个键码为 VK_CONTROL,第二个键码为 VK_ALT。
这是正确的行为吗?
在 Windows 7 上使用 Java 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
最佳答案
在windows中,AltGr和Ctrl+Alt是同义词。在某些区域设置(键盘布局?,它们都被视为 Ctrl+Alt,在其他区域,它们都被视为 AltGr。但是,我不完全确定。
参见 http://msdn.microsoft.com/en-us/library/windows/desktop/aa511502.aspx并使用 Ctrl-F 找到 AltGr。
关于Java 不产生正确的 AltGr 键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8795298/