2013-01-24 60 views
2

我使用PropertyChangeListener代替JTextFields來收聽的值的變化,並且它能正常工作,而當我使用它時JTextArea;代碼中沒有錯誤,並且它正常編譯。但是,當JTextField文本值發生某些更改時,此方法顯示響應,但在JTextArea時沒有響應。Java:PropertyChangeListener for JTextArea沒有迴應?

這是我寫的代碼

裏面的構造函數:

textField_1.addPropertyChangeListener("value", new ChangeListener()); 
textField_2.addPropertyChangeListener("value", new ChangeListener()); 
textArea.addPropertyChangeListener("value", new ChangeListener()); 

而且某處的類中:

private class ChangeListener implements PropertyChangeListener 
{ 
    @Override 
    public void propertyChange(PropertyChangeEvent e) 
    { 
     Object source = e.getSource(); 

     if ((source == textField_1) || (source == textField_2) || (source == textArea)) 
     { 
       System.out.println("some value changed "+ source.getClass()); 
     } 
    } 
} 

我每次都使用我做一個新值更改爲這些compomemts文本值。

感謝

回答

5
+0

謝謝; DocumentListener是完美的 –

+0

謝謝; 「DocumentListener」是完美的。但我想知道;由於在我的代碼中沒有錯誤,並且將'PropertyChangeListener'添加到'JTextArea'編譯的行中,爲什麼不響應呢?我用'DocumentListener'替換它現在可以工作。 **不管怎樣,謝謝;你的回答是完美的。** –

+0

很高興如果你能幫助你,只有Document負責監聽來自/到JTextComponent的所有更改, – mKorbel