如何将ArrayList转换为JList对象?JAVA

如何将ArrayList转换为JList对象?JAVA,java,arraylist,Java,Arraylist,我有一个ArrayList,随着越来越多的用户加入聊天室,它会变得越来越大。主JFrame有一个列表框,显示当前连接的所有用户。但是,当我尝试将arraylist传递到jframe列表时,会出现以下错误: “类型JList中的方法setListData(对象[])不适用 用于参数(ArrayList)” 谢谢你抽出时间 您只需使用setListData(arrayList.toArray()) JList myJList = new JList(arrayList.toArray()); //a

我有一个ArrayList,随着越来越多的用户加入聊天室,它会变得越来越大。主JFrame有一个列表框,显示当前连接的所有用户。但是,当我尝试将arraylist传递到jframe列表时,会出现以下错误:

“类型JList中的方法setListData(对象[])不适用 用于参数(ArrayList)”


谢谢你抽出时间

您只需使用
setListData(arrayList.toArray())

JList myJList = new JList(arrayList.toArray()); //arrayList should be your Array List
或者您可以编写自己的
ListModel
,它由
ArrayList
支持,例如

public class ListBasedListModel<T> extends AbstractListModel<T> {

    private List<T> data;

    public ListBasedListModel(List<T> data) {
        this.data = data;
    }

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

    @Override
    public T getElementAt(int index) {
        return data.get(index);
    }
}
公共类ListBasedListModel扩展了AbstractListModel{
私人名单数据;
公共ListBasedListModel(列表数据){
这个数据=数据;
}
@凌驾
公共int getSize(){
返回data.size();
}
@凌驾
公共T getElementAt(整数索引){
返回数据。获取(索引);
}
}
然后您可以只执行
list.setModel(新的ListBasedListModel(arrayList))
或类似的操作


查看更多详细信息

使用
list.toArray()
或单独循环arraylist并将元素添加到JListI我认为您应该像这样传递JList list=new JList(arl.toArray());
JList delList = new JList(myArrayList.toArray());