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