我有一个 JList,我想为它提供我自己的 ListModel。我有一个包含条目的 LinkedHashMap。我对 AbstractListModel 进行了子类化。我想要实现的是,每当我从 Map 中删除一个元素时,我希望它反映在 JList 中(添加或删除元素甚至更新)。
编辑- 我正在尝试这样做的场景如下:我有一个 JList 并添加、编辑和删除 JButton 。我维护一个包含 Detectors 对象的 Map。当我单击添加按钮时,我想向 Map 添加一个新的 Detector 对象,同时我希望 JList 反映在新的添加中。编辑和删除也是如此。
这是我到目前为止所做的,但我不知道如何让模型响应更新:
private class DetectorsListModel extends AbstractListModel {
private List<Detector> detectors;
private Map<Long, Detector> detectorsMap;
public DetectorsListModel( Map<Long, Detector> detectorsMap) {
this.detectorsMap = detectorsMap;
detectors = new LinkedList<Detector>();
for ( Long detectorID : detectorsMap.keySet() ) {
detectors.add( detectorsMap.get(detectorID) );
}
}
@Override
public int getSize() {
// TODO Auto-generated method stub
return detectors.size();
}
@Override
public Detector getElementAt(int index) {
// TODO Auto-generated method stub
return detectors.get(index);
}
}
请帮忙!