【发布时间】:2012-02-06 09:27:08
【问题描述】:
我在我的 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 时,它会报告:
按键: 键码 = 17 (Ctrl) 扩展修饰符 = 128 (Ctrl) 动作键?不 关键位置:左 按键: 键码 = 18 (Alt) 扩展修饰符 = 640 (Ctrl+Alt) 动作键?不 关键位置:右 密钥发布: 键码 = 17 (Ctrl) 扩展修饰符 = 512 (Alt) 动作键?不 关键位置:左 密钥发布: 键码 = 18 (Alt) 扩展修饰符 = 0(无扩展修饰符) 动作键?不 关键位置:右【问题讨论】:
-
在 Linux (Ubuntu) 上,它只触发一个事件,但键代码为 0 而不是 VK_ALT_GRAPH(我猜你可以使用 isAltGraphDown 检查状态)。这种行为似乎是高度特定于平台的。这是一个错误吗?
-
这似乎是一些键盘布局的一般 win32 问题(例如德国 - 瑞士)。我希望将该问题移至 win32 输入,不确定是否有助于找到解决方案..