1
내 DefaultListModel
을 정렬하고 내용이 변경된 이벤트를 실행하고 싶습니다.하지만이 이벤트가 계속 발생하여 fireContentsChanged 메소드를 호출하는 방법을 이해할 수 없습니다. 내 모델이 AbstractListModel
을 확장하면 정렬 후 fireContentsChanged를 직접 호출 할 수 있지만 DefaultListModel을 사용하여 클래스를 작성한 것처럼 해당 액세스를 보호 한 fireContentsChanged를 호출 할 수 없다는 것을 알았습니다. AbstractListModel
을 확장해야합니까, 아니면 DefaultListModel
fireContentsChanged를 호출 할 수 있습니까?DefaultListModel 정렬
public class DefaultDataModel implements DataModel
{
private DefaultListModel<Data> dataModel = new DefaultListModel<>();
@Override
public void addElement(Data data) {
dataModel.addElement(data);
}
@Override
public int getSize() {
return dataModel.getSize();
}
@Override
public Data getElementAt(int idx) {
return dataModel.getElementAt(idx);
}
@Override
public void addListDataListener(ListDataListener l) {
dataModel.addListDataListener(l);
}
@Override
public int indexOf(Data data) {
return dataModel.indexOf(data);
}
@Override
public List<Data> getAllData() {
return Collections.list(dataModel.elements());
}
@Override
public void sort() {
Collections.sort(getAllData());
}
}
모든 요소를 정렬 한 후 또는 정렬하는 동안 항목의 위치가 변경 될 때마다 "fireContentsChanged"메소드를 호출 하시겠습니까? –
위치가 변경 될 때마다 가능하다는 것을 몰랐습니다. 필자의 경우 모든 요소가 정렬 된 후에 fireContentsChanged를 호출하면되지만 항목 위치가 변경 될 때마다 수행하는 방법은 신경 쓰지 않아도된다고 생각합니다. – jerome