2015-05-06 24 views
1

我正在製作一個簡單的GUI來檢查我的字符串拼寫並希望連續顯示文本,所以我在文本字段中編寫它不斷更新此文本區域我已使用Document listener但我有一個問題,我無法通過我喜歡TextField中TextArea中未顯示的字符串

String check = input.getText(); 

textarea.setText(check); 

我不知道爲什麼它沒有工作,定義字符串表示由輸入字段和文本區文本,但是我能夠用這個方法來工作正確

//String check = input.getText(); 

textarea.setText(input.getText()); 

我想用第一種方法爲我的拼寫檢查預處理我的字符串

幫我看看這個!

工作方法:

public void setText() 
    { 

     jTextArea1.setEditable(false); 

     input.getDocument().addDocumentListener(new DocumentListener() { 

      public void insertUpdate(DocumentEvent de) { 
       jTextArea1.setText(input.getText()); 

      } 

      @Override 
      public void removeUpdate(DocumentEvent de) { 
       jTextArea1.setText(input.getText()); 

      } 

      @Override 
      public void changedUpdate(DocumentEvent de) { 
      //Plain text components don't fire these events. 
      } 
     }); 
    } 

非工作方法:

public void setText() 
    { 

     jTextArea1.setEditable(false); 
     String check = input.getText(); 
     input.getDocument().addDocumentListener(new DocumentListener() { 

      public void insertUpdate(DocumentEvent de) { 
       jTextArea1.setText(check); 

      } 

      @Override 
      public void removeUpdate(DocumentEvent de) { 
       jTextArea1.setText(check); 

      } 

      @Override 
      public void changedUpdate(DocumentEvent de) { 
      //Plain text components don't fire these events. 
      } 
     }); 
    } 
+0

應該沒有區別。你可能試圖在文檔監聽器的其他位置設置「check」嗎? – kiheru

+0

您可以請發佈整個方法。正如kiheru所說,這應該很好。 – swinkler

+0

是的,它似乎沒有區別,但它只是沒有顯示我的文本:(我不知道爲什麼 –

回答

0

我會解決這個問題的inputKeyTyped偵聽器和一個inputFocusLost聽衆:

private void inputKeyTyped(java.awt.event.KeyEvent evt) { 

     String s; 
     s = input.getText(); 
     output.setText(s); 

    } 

    private void inputFocusLost(java.awt.event.FocusEvent evt) {         

     String s; 
     s = input.getText(); 
     output.setText(s); 

    } 

在我的測試應用程序,它工作正常。每輸入一個字母后輸出更新。 (第一個文本字段被稱爲「輸入」,第二個「輸出」)。

enter image description here

+0

你也使用'output.setText(input.getText());「我想要這個工作」output.setText(s);「其中」s「是一個字符串,具有用戶輸入值 –

+0

所以我會編輯我的答案! –