如何將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. 將密鑰映射到自身和另一個密鑰,而不覆蓋密鑰的先前映射
- 3. 密鑰組合的Ascii代碼生成
- 4. 將編碼密鑰映射到appengine中的較短標識符
- 5. Spark:將HBase行密鑰的RDD映射到值爲
- 6. Spring:當JSON密鑰未知時將JSON映射到字符串
- 7. 用於刪除密鑰的錯誤ASCII密鑰代碼
- 8. 映射,通過密鑰的散列/值
- 9. 如何使用Python中的公鑰將值映射到值
- 10. 使用JOLT將值映射到密鑰規格
- 11. VIM鍵映射到現有的密鑰
- 12. 如何將枚舉值映射到查找表 - 代碼優先
- 13. viPlugin密鑰映射,如何映射<enter>
- 14. 如何發送一個ASCII碼值爲0的密鑰?
- 15. Vim和密鑰映射
- 16. 映射設置頁面到密鑰
- 17. 將公式映射到IEnumerable的代碼
- 18. 如何將密鑰密碼恢復到密鑰庫?
- 19. 如何將流利的NHibernate映射到NHibernate內置的基於代碼映射
- 20. 如何檢查密鑰映射到vim的時間?
- 21. Java - 打印值映射到從文件中讀取的密鑰
- 22. 適當映射字符串字段長度(通過代碼映射)
- 23. 將Redux減速器映射到狀態中的未知密鑰
- 24. 將沒有root密鑰的對象映射到動態url?
- 25. 將路由參數映射到Redux商店的密鑰下
- 26. 將不可預知的密鑰從JSON映射到POJO
- 27. 將Java代碼映射到SOAP和REST
- 28. Java:如何檢查密鑰是否映射到HashMap?
- 29. 訪問映射的值,如果其密鑰存在C++
- 30. 如何將json節點中的動態密鑰映射到類中?