2013-02-05 26 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"); 

替代方法必须返回你一个新的字符串,在它的变化,因为它不能修改原始。