2015-06-19 136 views
-1

對於我當前的項目,我需要創建一個自定義文本框,按下每個鍵並將其添加到字符串中。我不斷更新檢索關鍵用戶是迫切的,然後我添加它像這樣的方法:Java將字符串附加鍵輸入

public void addCharacter(String c) { 
    String before = text; 
    String after = before; 

    if (!before.endsWith(c)) { 
    after = text + c; 
    } else { 
     //What can I do here to check if the key 
     //was released and then pressed again, so that 
     //it only adds the character the number of times the user presses the key. 
    } 
    text = after; 
} 

我的問題是,如果我輸入一個關鍵它增加了,因爲事實上它噸其中不斷更新,這就是爲什麼我必須檢查它是否與以前一樣的信件,而不是添加它。

編輯:我們如何添加關鍵 例子:

if (key.a) { 
    addCharacter("a"); 
    return; 
} 
+0

'text'是一個全局變量嗎? – Armaiti

+0

yeess ...它工作正常,除了我描述的問題 – Coinreturn

回答

1

我認爲你可以通過使用KeyListener完成任務。這基本上是一個監聽器,每次鍵入,按下和釋放時都會發送事件。簡而言之,我會傾聽keyPressed事件,然後在收到keyReleased事件之前我不會輸入該字母。

+0

是的,我只是不知道如果我有多個文本框的實例會發生什麼,它仍然會以同樣的方式工作嗎? – Coinreturn

+0

好吧,如果你有多個文本框會發生什麼我想是,如果你按住鍵並單擊另一個文本框,它仍然不會被寫入另一個文本框,因爲鍵操作系統仍然按下。 –