2013-11-23 38 views
0

我有一個使用JTextArea editorText = new JTextArea();創建的文本區域,我需要處理在textArea中輸入的按鍵,然後才能將其顯示在textArea中。但它越來越顯示在textarea的,即使我用像這樣一個keyAdapter:如何控制JTextArea上顯示的內容?

private class KeyPressListener extends KeyAdapter 
    { 
     public void keyPressed(KeyEvent evt) { 
     editorText.append(""+evt.getKeyCode()); 
     } 
    } 

editorText.setKeyListener(keyAdapter); 有沒有辦法讓我處理輸入到textarea的信息,然後將其顯示在屏幕上?

回答

4

請勿爲此使用KeyListener。如果您需要在顯示輸入之前處理輸入,這將被視爲「過濾」輸入,在這種情況下,您需要通過setDocumentFilter(...)設置您的JTextArea的Document的DocumentFilter。

例如,請查看我的答案和代碼this question

+1

+1,另請參見[實現文檔過濾器](http://docs.oracle.com/javase/tutorial/uiswing/components/generaltext.html#filter)上的Swing教程部分。 Swing教程充滿了例子。我建議你將它加入書籤以方便訪問,這可以幫助你使用其他Swing基礎知識。 – camickr

+0

雖然我標記了這個問題解決了,我還沒有達到預期的結果。請參閱http://stackoverflow.com/questions/20179370/what-should-i-do-when-documentfilter-not-listening-for-changes –

相關問題