使用自定义Arraylist更新java JList
我已尝试将我的程序转换为GUI。我有2个自定义数组列表,类型为subject(b&m)。当按下b按钮时,我需要将ListData设置为自定义对象类型b,当按下m按钮时,我需要将ListData设置为自定义对象类型m。到目前为止,我的清单看起来像
LabelCoreSubs.setText("Core Subjects:");
ListCoreSub.setModel(new AbstractListModel<String>() {
String[] strings = {};
public int getSize() {
return strings.length;
}
public String getElementAt(int i) {
return strings[i];
}
});
jScrollPane1.setViewportView(ListCoreSub);
我可以通过arraylist b=b.getCores()调用这个自定义arraylist;如何使此arraylist显示在我的Jlist中。我还尝试将JList类型更改为Subject,但没有成功
如何更新JList以在按钮单击事件中显示每个列表
# 1 楼答案
JList
的setListData()
方法仅适用于数组或向量,因此不能将其用于ArrayList
因此,您可以:
DefaultListModel
李>DefaultListModel
的addAll(...)
方法将ArrayList
的项复制到模型中李>JList
的setModel(...)
方法李>更好的方法是不创建两个ArrayList来保存初始数据。相反,只需创建一个
DefaultListModel
并将数据直接添加到模型中。这样,数据就只在一个地方。要更改JList
中显示的数据,只需使用setModel(...)
方法