PropertyChangeListener

PropertyChangeListener

我将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中的更改
您可以从此ListenerPropertyChangeListener发起一个新事件
仅在需要的情况下才向PropertyChangeListener触发新事件,此说明不知道,以便更好地帮助尽早发布SSCCE

10-05 18:59