我正在使用 KeyEvents 和
KeyEvent.getKeyText(KeyEvent.VK_...)
以获取KeyEvent对应的文本。
在 OSX (Lion) 中,当我请求特殊键的文本时,例如 TAB 或 ENTER (KeyEvent.VK_ENTER),我得到相应的符号(例如,对于 Enter,我得到弯曲的箭头)。在 Windows XP 系统中,同样给我的是键名(例如“Enter”)而不是符号。
是否也有解决方案来获取 XP 中的特殊字符?
MAC有不同的实现:
这些是有意更改的,以便在 Swing 中为窗口内菜单栏的菜单快捷方式提供正确的符号。我们现在实际上返回系统菜单栏显示的 unicode 符号,而不是使用单词“Meta”或“Command”。
在这种情况下,您可以使用该键的常量VK_ENTER
,例如
if (evt.getKeyCode() == KeyEvent.VK_DOWN || evt.getKeyCode() == KeyEvent.VK_KP_DOWN) {}
或者您可以将键映射到其字符串名称Map
map.put(KeyEvent.VK_ENTER, '\u21b5'); \\ ↵