KeyPressed和KeyTyped混淆

时间:2013-07-22 20:54:08

标签: java awt keypress keylistener

我搜索了KeyPressedKeyTyped事件之间的差异,但我仍然不清楚这一点。我发现的一件事是Keypressed首先被触发而不是KeyTyped。 当这些被触发时,请澄清我。哪个适合用于哪个目的? 提前致谢

2 个答案:

答案 0 :(得分:12)

每当发生任何按键操作时都会触发

keyPressed。按下一个可以转换为unicode字符的键时会触发keyTyped。例如,如果Shift键关闭,则按“a”会告诉keyTyped您键入了大写字母A,而keyPressed只会获得“a”键,而没有大写字母或小写字母。您无法从event.getKeyChar()调用keyPressed,因为没有与事件关联的键字符。字符只来自keyTyped

基本思想是keyTyped用于查找键入的字符,keyPressed用于获取原始键按下。

答案 1 :(得分:-1)

密钥关闭时会发生

KeyPressed。当密钥关闭然后备份时,会发生KeyTyped。我不确定“快速连续”是否是一项要求,如果是,“快速”有多快。

编辑:KeyTyped实际上是从键盘发送unicode字符时。通常,关键行为是它会下降然后快速连续备份。

取自:KeyListener, keyPressed versus keyTyped