2010-07-28 135 views
-1

如何知道鍵入的內容何時更改我的文本?或者如果密鑰是字符?Java Swing - KeyListener

+1

什麼文字?它是在文本字段,文本區域等?你在聽什麼?你只關心被按下的按鍵是在文本區域,還是隻在不是?更多關於你想通過聽重點新聞來達到的目標也會有所幫助。 – aperkins 2010-07-28 17:21:10

回答

1

接口的KeyListener包含三種方法:

無效的keyTyped(KeyEvent)方法
無效的keyPressed(KeyEvent)方法
無效的keyReleased(KeyEvent)方法

所以,如果你在KeyEvent的對象,如焦炭:

if ("a".equals(KeyEvent.getKeyChar())) 
    System.out.println("It's a letter") 
1

我猜你想知道閹輸入特定的按鍵實際打印char或一些「隱形」控制字符或東西:在這種情況下

您可以檢查哪些被傳遞到該KeyEvent輸入的密鑰KeyListener的實現方法:

這個快速的例子應該可以工作,雖然我沒有測試它。它在KeyEvent返回的char上構造一個新的String,如果char在String中創建了一個可讀的字符,則會調用length()方法chekc。有點哈克但我希望你得到它

public void keyReleased(KeyEvent ke){ 
    if (new String(ke.getKeyChar()).length() == 0){ 
     // do something important... 
    } 
} 

要點alternativley可以使用ke.getKeyCode(),並檢查VS在KeyEvent的靜態字段(VK_F12,VK_ENTER ...)

檢查這裏:

http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html

+0

它不起作用! :( 當我在退格後創建字符串時,值爲「\ b」,意思是長度等於1. – Victor 2010-07-28 17:40:15

+0

閱讀javadoc後得出getKeyCode()== KeyEvent.VK_UNDEFINED應該工作... – fasseg 2010-07-28 18:05:56