我有一个自定义集合,它实现ListModel
. 当这个集合发生变化时,我需要通知JList
. 通常你会fireListDataChanged
,但这不是由ListModel
.
我应该如何修改我的代码以自动更新JList
?
在这里列出:
this.selectedInterfacesJList.setModel(new TufinInterfaceCollection());
在这里收集:
public class TufinInterfaceCollection extends AbstractCollection<TufinInterface> implements ListModel<String> {
ArrayList<TufinInterface> list=new ArrayList();
private final ArrayList listeners=new ArrayList();
@Override
public boolean remove(Object o) {
return list.remove(o); //To change body of generated methods, choose Tools | Templates.
}
@Override
public boolean add(TufinInterface e) {
return list.add(e); //To change body of generated methods, choose Tools | Templates.
}
public TufinInterface get(int i){
return list.get(i);
}
@Override
public Iterator<TufinInterface> iterator() {
return list.iterator();
}
@Override
public int size() {
return list.size();
}
@Override
public int getSize() {
return size();
}
@Override
public String getElementAt(int i) {
return get(i).toString();
}
@Override
public void addListDataListener(ListDataListener ll) {
this.listeners.add(ll);
}
@Override
public void removeListDataListener(ListDataListener ll) {
this.listeners.remove(ll);
}
}