繁体   English   中英

KeyEvent.getKeyText()在OSX中返回特殊字符(例如'VK_ENTER'),但在Windows XP上没有,任何解决方案?

[英]KeyEvent.getKeyText() is returning special characters in OSX (e.g. for 'VK_ENTER') but not on Windows XP, any solution?

我正在使用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'); \\ ↵

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM