2009-06-21 42 views

回答

4

鍵碼是爲公共鍵定義的。它們是由前綴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

0

如果我理解正確,你會想出一個你想作爲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_字段的常量值,那麼沿着這條路線走下去也會降低您的應用程序的風險。

相關問題