很多地方都能看到类似 fireContentsChanged 的处理,但一直不明白它的作用,jdk上只说了一个或多个元素发生更改之后调用此方法。但没说什么要调用,处理作用及意义是什么,最好有示例说明。public class DefaultComboBoxModel extends AbstractListModel implements MutableComboBoxModel, Serializable { public void setSelectedItem(Object anObject) {
if ((selectedObject != null && !selectedObject.equals( anObject )) ||
selectedObject == null && anObject != null) {
selectedObject = anObject;
fireContentsChanged(this, -1, -1);
}
}
}
if ((selectedObject != null && !selectedObject.equals( anObject )) ||
selectedObject == null && anObject != null) {
selectedObject = anObject;
fireContentsChanged(this, -1, -1);
}
}
}
{
Object[] listeners = listenerList.getListenerList();
ListDataEvent e = null; for (int i = listeners.length - 2; i >= 0; i -= 2) {
if (listeners[i] == ListDataListener.class) {
if (e == null) {
e = new ListDataEvent(source, ListDataEvent.CONTENTS_CHANGED, index0, index1);
}
((ListDataListener)listeners[i+1]).contentsChanged(e);
}
}
}