首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >排序DefaultListModel

排序DefaultListModel
EN

Stack Overflow用户
提问于 2012-11-20 04:59:33
回答 1查看 8K关注 0票数 1

我看到,如果我的模型扩展了AbstractListModel,我可以在排序后直接调用fireContentsChanged,但是按照我处理DefaultListModel类的方式,我不能调用它的fireContentsChanged,因为它有受保护的访问权限。我必须扩展AbstractListModel吗?或者有没有办法调用DefaultListModel fireContentsChanged?

代码语言:javascript
复制
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());
  }
}
EN

回答 1

Stack Overflow用户

发布于 2012-11-20 15:12:30

我在sort方法中找到了如何做到这一点,我必须从dataModel listeners列表中调用contentsChanged方法。

代码语言:javascript
复制
@Override
public void sort() {
    Collections.sort(getAllData());
    ListDataListener[] listeners = dataModel.getListDataListeners();
    for(ListDataListener listener : listener) {
        listener.contentsChanged(dataModel, ListDataEvent.CONTENTS_CHANGED, 0, getSize());
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13462118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档