KeyPressed and KeyTyped Confusion [duplicate]

2019-08-05 19:20发布

This question already has an answer here:

I have searched about difference between KeyPressedand KeyTyped Events but still I'm not clear about that . One thing I have found is Keypressed is triggered first than KeyTyped . Please clarify me when these are triggered exactly . Which is appropriate to use for which purpose ? Thanks in advance

2条回答
Bombasti
2楼-- · 2019-08-05 19:32

KeyPressed happens when the key goes down. KeyTyped happens when the key goes down and then back up. I'm not sure if "in rapid succession" is a requirement, and if it is, how fast "rapid" is.

Edit: KeyTyped is actually when a unicode char is sent from the keyboard. USUALLY, the key behavior is that it goes down and then back up in rapid succession.

Taken from: KeyListener, keyPressed versus keyTyped

查看更多
我只想做你的唯一
3楼-- · 2019-08-05 19:38

keyPressed is fired whenever any key press occurs. keyTyped is fired when a key is pressed that can be converted into a unicode character. If the shift key is down, for example, pressing "a" will tell keyTyped that you typed a capital A, and keyPressed will just get the "a" key, without capital or lowercase designations. You cannot call event.getKeyChar() from keyPressed, because there is no key char associated with the events. Characters only come from keyTyped.

The basic idea is that keyTyped is used to find characters that are typed, and keyPressed is used for obtain raw key presses.

查看更多
登录 后发表回答