我已实现此方法来更改 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/