我将PropertyChangeListener
用于JTextFields
来监听值的更改,并且在与JTextArea
一起使用时它可以正常工作;代码中没有错误,并且可以正常编译。但是,当JTextField
文本值发生某些更改时,此方法会显示响应,而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文本值时,我都会使用新值。
谢谢
最佳答案
使用DocumentListener收听JTextArea中的更改
您可以从此Listener向PropertyChangeListener发起一个新事件
仅在需要的情况下才向PropertyChangeListener
触发新事件,此说明不知道,以便更好地帮助尽早发布SSCCE