2013-02-05 48 views
0

我有兩個textareas。當我在第一個textarea中鍵入內容時,它會在第二個文檔中顯示出來。我想用替換來替換某些單詞與不同的單詞(如翻譯)。使用替換DocumentListener

我的DocumentListener是這樣的:

DocumentListener documentListener = new DocumentListener() { 

    public void changedUpdate(DocumentEvent documentEvent) { 
     printIt(documentEvent); 
    } 
    public void insertUpdate(DocumentEvent documentEvent) { 
     printIt(documentEvent); 
    } 
    public void removeUpdate(DocumentEvent documentEvent) { 
     printIt(documentEvent); 
    } 
    private void printIt(DocumentEvent documentEvent) { 
     DocumentEvent.EventType type = documentEvent.getType(); 
     String typeString = null; 
     if (type.equals(DocumentEvent.EventType.CHANGE)) { 
     } 
     else if (type.equals(DocumentEvent.EventType.INSERT)) { 
      String hello = area1.getText(); 
     hello.replace("hei", "hello"); 
     area2.setText(hello); 
     } 
     else if (type.equals(DocumentEvent.EventType.REMOVE)) { 
      String hello = area1.getText(); 
     area2.setText(hello); 
     } 
    } 
}; 

這不工作,雖然。我認爲hello.replace會用hello代替在area1中輸入的hei,這將顯示在area2中。但是,它並沒有改變這個詞。那麼我做錯了什麼?

謝謝!

回答

2

字符串是不可變的;他們不能改變。所以:

 
hello.replace("hei", "hello"); 

應該是:

 
hello = hello.replace("hei", "hello"); 

替代方法必須返回你一個新的字符串,在它的變化,因爲它不能修改原始。