【问题标题】:associate a java.util.list to a listmodel将 java.util.list 关联到 listmodel
【发布时间】:2014-02-08 01:56:35
【问题描述】:

我创建了一个带有自定义 ListModel 的 jList 来显示一些对象(用户)。我尝试使用 dao 架构。当我使用 des DAO 类将联系人添加到我的集合时,Listmodel 不会更新。似乎列表模型被破坏了。

这是我的带有 customListModel 的 Jlist。

>    Service dcs = new DefaultService(MyDao);
>    CustomListModel cList = new CustomListModel( dcs );
>    list = new JList<>(cList);
>    list.addMouseListener(new ContactListItemListener(list,this.dcs));

自定义列表模型:

public class CustomListModel extends DefaultListModel<Contact>{

    private ContactService dcs ;

    public CustomListModel(ContactService dcs) {
        this.dcs = dcs;
    }

    @Override
    public void addListDataListener(ListDataListener arg0) {
        // TODO Auto-generated method stub

    }
    @Override
    public Contact getElementAt(int i) {
        System.out.println(dcs.list().size()+"  Test "+dcs.list()); //just for testing
        return dcs.list().get(i);

    }

    @Override
    public int getSize() {
        return dcs.list().size();
    }

    @Override
    public void removeListDataListener(ListDataListener arg0) {
        // TODO Auto-generated method stub

    }

}

在我的听众的 ActionPerformed 中:

    public void actionPerformed(ActionEvent e) {
        this.dcs.add(new User());
}

执行actionperformed时,新用户被添加到我的用户列表中,但是customListModel没有显示test的消息,似乎customListModel被破坏了。

对不起我的英语不好

【问题讨论】:

  • 您需要发布相关代码,没有它无法回答您的问题。
  • 定义 - “销毁”
  • 投票关闭当前状态下无法回答。请改进。
  • "destroyed" 是什么意思?如果需要帮助,您确实需要查看 cmets 并回答提出的问题
  • “destroyed”是指CustomListModel没有像他在添加用户之前那样在“getElementMethod”中显示“syso”,我的结论是模型ts被破坏了。

标签: java swing jlist defaultlistmodel


【解决方案1】:

JList 不会刷新,因为它无法知道某些内容已添加到数据库中,因此它应该再次向模型询问新元素。当您向数据库添加内容时,您必须触发一个事件,或者将列表的模型替换为具有新列表的新模型。

顺便说一句,如果您不打算使用 DefaultListModel 封装的数据,则不应扩展 DefaultListModel,而是扩展 AbstractListModel。查看其fireXxx() 方法来触发事件。

【讨论】:

  • 非常感谢 Jb,它有效!在我的服务中添加了一个用户后,我为我的 jList 设置了一个新的 listmodel。每次更改列表时都无需重置列表模型就可以做同样的事情吗?我搜索了如何使用 fire*() 方法,但没有找到简单的教程。
猜你喜欢
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多