如何将ASCII值映射到适当的密钥代码?如何将ASCII值映射到适当的密钥代码?
回答
键码是为公共键定义的。它们是由前缀VK_(虚拟键):
字母数字键
VK_0,VK_1,...,VK_9,VK_A,VK_B,...,VK_Z
控制键
V K_ENTER,VK_BACKSPACE,VK_TAB,VK_ESCAPE
个功能键
VK_F1,VK_F2,VK_F3,VK_F4 VK_F5,VK_F6,VK_F7,VK_F8,VK_F9,VK_F10,VK_F11,VK_F12, VK_SCROLL_LOCK,VK_PRINTSCREEN,VK_PAUSE, VK_DELETE,VK_INSERT, VK_PAGE_UP,VK_PAGE_DOWN, VK_HOME,VK_END
箭头键
VK_LEFT,VK_RIGHT,VK_UP,VK_DOWN
Ref。 :Java Notes: Keyboard
如果我理解正确,你会想出一个你想作为KeyEvents广播的消息,并且将消息转换为ASCII就够简单了。现在您希望我们将该ACSII转换为键码。
如果您查看KeyEvent的代码,您将看到VK_A到VK_Z等同于A到Z的ASCII值,这使得映射变得相对容易。请注意,尽管这些字母都是ASCII大写字母,但在KeyEvent中未修改,它们表示小写字母。要获取大写字母代码,需要将VK_SHIFT(和/或VK_CAPSLOCK)的修饰符与大写字母的ASCII组合在一起。
因此,继续假定的目标,您可以通过将字母的小写字母和大写字母解析为相同的ASCII码(大写字母)来设置字母的键码来创建KeyEvent。如果输入ASCII与大写ASCII范围的范围一致,则可以将KeyEvent上的修饰符设置为VK_SHIFT。
如果您的问题领域更广泛,您可能需要设置一个可以查找这些代码的地图,以及其他标点符号和控制字符。 KeyEvent.getKeyText()的实现显示了类似的内容,但方向相反。你可以用它作为你的出发点。如果出于某种原因,Java决定更改这些VK_字段的常量值,那么沿着这条路线走下去也会降低您的应用程序的风险。
- 1. 如何映射密钥以插入多行代码或注释?
- 2. 密钥组合的Ascii代码生成
- 3. 将编码密钥映射到appengine中的较短标识符
- 4. Spark:将HBase行密钥的RDD映射到值为
- 5. 映射,通过密钥的散列/值
- 6. 使用JOLT将值映射到密钥规格
- 7. VIM键映射到现有的密钥
- 8. 如何将枚举值映射到查找表 - 代码优先
- 9. 如何将密钥密码恢复到密钥库?
- 10. Java - 打印值映射到从文件中读取的密钥
- 11. 将没有root密钥的对象映射到动态url?
- 12. 将Redux减速器映射到状态中的未知密钥
- 13. 将Java代码映射到SOAP和REST
- 14. 如何将json节点中的动态密钥映射到类中?
- 15. Vue.js:如何将密钥列表映射到实际的Firebase对象?
- 16. 如何将对象映射到EF 4代码的视图?
- 17. 如何将范围映射到值?
- 18. 如何将deviceorientation映射到MozOrientation值
- 19. 如何将代码推送到Github隐藏API密钥?
- 20. 如何将XML模式映射到C/C++代码?
- 21. 如何将PC(ARMv5)地址映射到源代码?
- 22. 如何通过.NET代码将XML映射添加到excel?
- 23. 如何使用Magick.net将ImageMagick命令映射到.net代码
- 24. 将汇编代码映射到VB6代码
- 25. TPC映射:MapInheritedProperties()强制继承密钥
- 26. 在secureCRT中映射密钥,emacs
- 27. 远程Unix终端密钥映射
- 28. Elasticsearch映射与动态密钥对象
- 29. 检查映射是否包含密钥
- 30. 映射:nohlsearch以逃避密钥