Ctrl+B 键盘绑定如何工作?
无论我使用哪种语言,Word
中的 Ctrl+B 和其他快捷键的工作方式都是相同的 - 这种绑定是如何完成的?用Java可以实现吗?
The Ctrl+B in Word
and other shortcuts work the same no matter what language I'm using - how is this binding done? Can it be done in Java?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果我理解正确的话,我想知道当您使用不同的语言时,输入 Ctrl+B 会创建不同的键代码吗?在这种情况下,请查看 KeyEvent API。它有 2 个相关方法:getKeyCode() 和 getKeyChar()。
按下按键时调用 getKeyChar() 取决于当前语言。 getKeyCode() 不依赖。它始终返回密钥的代码,而不是与其关联的字母。此外,我发现(至少在我的系统 - Linux Fedora 上)即使当前语言不同,在释放的密钥上调用 getkeyChar() 也会返回英文字符。
以下是在我的系统上安装了 3 种不同的输入语言时按下和释放同一键的结果:英语、俄语和希伯来语。
压制:ф65
发布: 65
按下:65
发布: 65
按下: 65
released: a 65
如您所见,尽管字符不同,但密钥代码始终相同。
If I understand you correctly I wonder that typing Ctrl+B creates different key code when you are using different languages? In this case look into KeyEvent API. It has 2 relevant methods: getKeyCode() and getKeyChar().
getKeyChar() invoked when key is down depends on current language. getKeyCode() does not depend. It always return the code of the key, not the letter associated with it. Moreover I found that (at least on my system - Linux Fedora) getkeyChar() invoked on key released returns the English character even when current language is different.
Here are the results of pressing and releasing of the same key with 3 different input languages installed on my system: English, Russian and Hebrew.
pressed: ф 65
released: a 65
pressed: a 65
released: a 65
pressed: ש 65
released: a 65
As you can see the key code is always the same although the char is different.
有关其工作原理的说明,请参阅如何使用键绑定在摇摆中。
See How to Use Key Bindings for an explanation of how this works in Swing.