Java 从键文本中获取KeyChar

Java 从键文本中获取KeyChar,java,swing,awt,keystroke,key-events,Java,Swing,Awt,Keystroke,Key Events,我必须使用代表击键的字符串(例如“a”、“ENTER”、“F4”)。从这个字符串中,我需要获取击键的keychar、keycode和键修饰符 以下是我所做的(例如F4): 我得到: 115 0 ? 按键代码和修改器都可以,但无论我尝试什么样的按键,我都能得到?对于keychar 我遗漏了什么吗?2评论: 您没有指定键入的密钥,在这种情况下 “F4”没有有效的unicode字符 如果将语句更改为System.out.println((int)ks.getKeyChar())您将看到keyCh

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

以下是我所做的(例如F4):

我得到:

115
0
?
按键代码和修改器都可以,但无论我尝试什么样的按键,我都能得到?对于keychar

我遗漏了什么吗?

2评论:

  • 您没有指定键入的密钥,在这种情况下
  • “F4”没有有效的unicode字符
如果将语句更改为
System.out.println((int)ks.getKeyChar())
您将看到
keyChar
是65535,这是
KeyEvent.CHAR\u UNDEFINED
的值

您可以尝试
AWTKeyStroke ks=AWTKeyStroke.getAWTKeyStroke(“键入A”)
查看keyChar是
A
,您也可以尝试
AWTKeyStroke ks=AWTKeyStroke.getAWTKeyStroke(“键入的F4”)以查看是否出现异常。

2注释:

  • 您没有指定键入的密钥,在这种情况下
  • “F4”没有有效的unicode字符
如果将语句更改为
System.out.println((int)ks.getKeyChar())
您将看到
keyChar
是65535,这是
KeyEvent.CHAR\u UNDEFINED
的值

您可以尝试
AWTKeyStroke ks=AWTKeyStroke.getAWTKeyStroke(“键入A”)
查看keyChar是
A
,您也可以尝试
AWTKeyStroke ks=AWTKeyStroke.getAWTKeyStroke(“键入的F4”)以查看是否出现异常

115
0
?