2012-06-26 40 views
2

我必須使用代表擊鍵的字符串(例如「A」,「ENTER」,「F4」)。從這個字符串中,我需要獲取keychar,keycode和keystroke的鍵修飾符。從關鍵文本獲取KeyChar

這裏是我做什麼(對於F4爲例):

AWTKeyStroke ks = AWTKeyStroke.getAWTKeyStroke("F4"); 
System.out.println(ks.getKeyCode()); 
System.out.println(ks.getKeyModifiers()); 
System.out.println(ks.getKeyChar()); 

我得到:

115 
0 
? 

鍵碼和修飾符是確定的,但任何的按鍵我嘗試,我總是得到什麼?爲keychar ...

我錯過了什麼?

回答

3

2評論:

如果你改變你的陳述到System.out.println((int)ks.getKeyChar());你會看到keyChar是65535,這是KeyEvent.CHAR_UNDEFINED的值。

你可以嘗試AWTKeyStroke ks = AWTKeyStroke.getAWTKeyStroke("typed A");看到keyChar是A,你也可以嘗試AWTKeyStroke ks = AWTKeyStroke.getAWTKeyStroke("typed F4");看到你得到一個異常。

+0

謝謝!現在一切都很清楚。 – LuSyo