JList があり、独自の ListModel を提供したいと考えています。エントリを含む LinkedHashMap があります。AbstractListModel をサブクラス化しました。私が達成したいのは、マップから要素を削除するたびに、それが 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);
}
}
助けてください!