很多地方都能看到类似 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方法),通知其后台内容改变。