日期:2014-05-20  浏览次数:20682 次

求解fireContentsChanged的工作机制、过程、原理
很多地方都能看到类似 fireContentsChanged 的处理,但一直不明白它的作用,jdk上只说了一个或多个元素发生更改之后调用此方法。但没说什么要调用,处理作用及意义是什么,最好有示例说明。

Java code
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);
        }
    }
}


------解决方案--------------------
Java事件机制,你可以用Google搜相关资料,推荐一篇博文《Java事件传送技术》,具体地址忘了。fireContentsChanged是将事件通知给ListDataListener,方法中的for循环就是传递内容改变事件给所有的监听者,这里是JComboBox自身(可以查看JComboBox中有contentsChanged方法),通知其后台内容改变。