2013-07-22 54 views
0

我已經搜索了KeyPressedKeyTyped事件之間的差異,但我仍然不清楚這一點。我發現的一件事是Keypressed首先被觸發,而不是KeyTyped。 請確定這些觸發時,請澄清一下。哪個適合用於哪個目的? 在此先感謝KeyPressed和KeyTyped Confusion

+0

這是使用Swing還是AWT組件?對於Swing,通常使用基於AWT的較低級別KeyListener的鍵綁定。有關如何使用它們的詳細信息,請參見[如何使用鍵綁定](http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html)。 –

回答

9

keyPressed,只要按任何鍵時被觸發。當按下可以轉換爲unicode字符的按鍵時,會觸發keyTyped。例如,如果換檔鍵處於關閉狀態,則按「a」會告訴您輸入大寫字母A,而keyPressed只會得到「a」鍵,不帶大寫或小寫字母。您不能從keyPressed撥打event.getKeyChar(),因爲沒有與事件關聯的關鍵字符。角色只來自keyTyped

其基本思想是keyTyped用於查找輸入的字符,keyPressed用於獲取原始按鍵。

-1

KeyPressed發生鍵關閉時發生。當密鑰關閉然後備份時會發生KeyTyped。我不確定是否需要「快速連續」,如果是,「快速」的速度有多快。

編輯:KeyTyped實際上是從鍵盤發送unicode字符。通常情況下,關鍵的行爲是它下降,然後快速連續備份。

來自KeyListener, keyPressed versus keyTyped