我必须使用字符串代表击键(例如“A”,“ENTER”,“F4”)。从这个字符串我需要获得keychar的keychar,keycode和键修饰符。
这是我的所作所为(例如F4):
AWTKeyStroke ks = AWTKeyStroke.getAWTKeyStroke("F4");
System.out.println(ks.getKeyCode());
System.out.println(ks.getKeyModifiers());
System.out.println(ks.getKeyChar());
我明白了:
115
0
?
键码和修饰符都可以,但无论我尝试哪次按键,我总能得到?对于keychar ...
我错过了什么吗?
答案 0 :(得分: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");
看到您获得例外。