2

我必须使用代表击键的字符串(例如“A”、“ENTER”、“F4”)。我需要从这个字符串中获取按键字符、按键代码和按键修饰符。

这是我所做的(例如 F4):

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

我得到:

115
0
?

键码和修饰符都可以,但无论我尝试什么击键,我总是得到?对于密钥字符...

我错过了什么吗?

4

1 回答 1

4

2 条评论:

如果您将语句更改为,System.out.println((int)ks.getKeyChar());您将看到keyChar65535,即 的值KeyEvent.CHAR_UNDEFINED

您可以尝试AWTKeyStroke ks = AWTKeyStroke.getAWTKeyStroke("typed A");查看 keyChar 是否存在A,也可以尝试AWTKeyStroke ks = AWTKeyStroke.getAWTKeyStroke("typed F4");查看是否出现异常。

于 2012-06-26T10:09:25.390 回答