我遇到了这段代码。我想了解该 fireStateChanged
方法的作用以及它的作用。
public abstract class AbstractModel {
private EventListenerList listenerList;
protected EventListenerList getListenerList() {
if (listenerList == null) {
listenerList = new EventListenerList();
}
return listenerList;
}
protected void fireStateChanged() {
ChangeListener[] listeners = getListenerList().getListeners(ChangeListener.class);
if (listeners.length > 0) {
ChangeEvent evt = new ChangeEvent(this);
for (ChangeListener listener : listeners) {
listener.stateChanged(evt);
}
}
}
}
这段代码与fireStateChanged
上面的方法有什么不同?
public void fireActionEvent(ActionEvent evt) {
ActionListener[] listenerList = listeners.getListeners(ActionListener.class);
for(int i = listenerList.length-1; i >= 0; --i)
listenerList[i].actionPerformed(evt);
}
我是使用 EventListenerList 的初学者。我也阅读了文档。但我不清楚发生了什么。fireAction
这种方法通常出现在许多代码中。所以我想清楚地理解这个概念。非常感谢