java - Java 中的 addPropertyChangeListener 方法

标签 java listener

我已实现此方法来更改 actionPerformed 方法正在使用的 PropertyChangeSupport 的值。但是,我遇到了 NullPointerException,因为 PropertyChangeSupport 实例是 null 。谁能告诉我问题所在?以下是代码片段。

对于 PropertyChangeListener:

public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
    if (pcs == null) {
        pcs = new PropertyChangeSupport(this);
    }
    this.pcs.addPropertyChangeListener(listener);
}

对于事件:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    Task oldTask = this.task;
    this.task = new TaskImpl();
    this.pcs.firePropertyChange(PROP_TASK, oldTask,this.task);
    this.updateForm();
}

最佳答案

这可能是因为您在调用 this.pcs.firePropertyChange(PROP_TASK, oldTask,this.task); 之前调用了在其 addPropertyChangeListener() 中实例化 PropertyChangeSupport (pcs) 的任何类方法。即底部代码块在顶部(如果有的话)被调用之前被调用。您可以尝试检查 jButtonActionPerformed() 方法中的 pcs 是否为 null 并在那里实例化。

关于java - Java 中的 addPropertyChangeListener 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6907082/

相关文章:

java - Jackson 日期反序列化 - "invalid"日期

java - 有没有办法强制 Checkstyle 忽略源代码中的特定警告?

java - ListView "onPopulate"监听器?

java - 打开时调用 JFace ComboViewer setComparator()

java - DrawerLayout onDrawerClosed() 调用两次

Android - 微调器 : how may I distinguish user's actions from computer's actions in a OnItemSelectedListener

java - 编译 Hadoop native - 在 Maven 插件中发现错误

java - 如何在 GWT RPC 中捕获 AJAX beforeSend 事件

java - 如何知道 Cassandra(CQL) 中受影响的行?

spring - 如何注册hibernate spring实体监听器