Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将java.util.list与listmodel关联_Java_Swing_Jlist_Defaultlistmodel - Fatal编程技术网

将java.util.list与listmodel关联

将java.util.list与listmodel关联,java,swing,jlist,defaultlistmodel,Java,Swing,Jlist,Defaultlistmodel,我创建了一个带有自定义ListModel的jList来显示一些对象(用户)。我尝试使用dao架构。当我使用des DAO类向我的收藏中添加联系人时,Listmodel不会更新。列表模型似乎已被破坏 这是我的带有customListModel的Jlist > Service dcs = new DefaultService(MyDao); > CustomListModel cList = new CustomListModel( dcs ); > list =

我创建了一个带有自定义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));
当执行ActionExecuted时,新用户被添加到我的用户列表中,但是customListModel没有显示test消息,似乎customListModel被销毁了


抱歉,我的英语不好

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


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

您需要发布相关代码,没有它就无法回答您的问题。将“已销毁”投票定义为在当前状态下无法回答。请改进,“销毁”是什么意思?你真的需要查看评论并回答问题,如果你想得到“销毁”的帮助,我的意思是CustomListModel没有像添加用户之前那样在“getElementMethod”中显示“syso”,我的结论是该模型已销毁。非常感谢Jb,它可以工作!在为我的服务添加一个用户之后,我将一个新的listmodel设置到我的jList中。每次更改列表时,是否可以不必重置listmodel而执行相同的操作?我搜索了如何使用fire*()方法,但没有找到简单的教程。
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

    }

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