属性更改列表器不会调用propertychangeevent方法

时间:2014-10-13 07:30:51

标签: java swing propertychangelistener

以下是有关房产变更的代码。如果我使用此代码, public void propertyChange(PropertyChangeEvent evt)将被正确调用。

public void setWeekDate(Date weekDate) {        
   firePropertyChange("weekDate", this.weekDate, this.weekDate = weekDate);     
}

但如果我使用下面的代码public void propertyChange(PropertyChangeEvent evt)将不会 调用。

public void setWeekDate(Date weekDate) {
    this.weekDate = weekDate;   
    firePropertyChange("weekDate", this.weekDate, weekDate);
}

有人能告诉我上面的代码有什么问题吗?

1 个答案:

答案 0 :(得分:2)

在第二个实例中,您提供两次相同的值。如果值没有实际改变,我猜测firePropertyChange什么都不做。试试这个:

public void setWeekDate(Date weekDate) {
    Date oldValue = this.weekDate;
    this.weekDate = weekDate;   
    firePropertyChange("weekDate", oldValue, this.weekDate);
}