问题
I have searched about difference between KeyPressed
and 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
回答1:
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.
回答2:
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
来源:https://stackoverflow.com/questions/17797231/keypressed-and-keytyped-confusion