从关键文本中获取KeyChar

时间:2012-06-26 09:51:28

标签: java swing awt keystroke key-events

我必须使用字符串代表击键(例如“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 ...

我错过了什么吗?

1 个答案:

答案 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");看到您获得例外。