使用自定义 Arraylist 更新 JList
Update JList with Custom Arraylist
我试图将我的程序转换为 GUI。我有 2 个类型为 subject (b & m) 的自定义 Arraylists 我需要在按下 B 按钮时将 setListData 设置为自定义对象类型 b,在按下 M 按钮时将其设置为 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 显示在我的 Jlist 中。我也曾尝试将 JList 类型更改为 Subject 但没有成功。
如何更新我的 JList 以在按钮单击事件中显示每个列表。
JList
的 setListData()
方法仅适用于 Array 或 Vector,因此您不能将其与 ArrayList
一起使用。
所以你可以:
- 创建
DefaultListModel
.
- 使用
DefaultListModel
的 addAll(...)
方法将 ArrayList
的项目复制到模型中。
- 使用
JList
的setModel(...)
方法。
更好的方法是不创建两个 ArrayList 来保存初始数据。相反,只需创建一个 DefaultListModel
并将数据直接添加到模型中。这样数据就只在一个地方。要更改 JList
中显示的数据,您只需使用 setModel(...)
方法。
我试图将我的程序转换为 GUI。我有 2 个类型为 subject (b & m) 的自定义 Arraylists 我需要在按下 B 按钮时将 setListData 设置为自定义对象类型 b,在按下 M 按钮时将其设置为 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 显示在我的 Jlist 中。我也曾尝试将 JList 类型更改为 Subject 但没有成功。
如何更新我的 JList 以在按钮单击事件中显示每个列表。
JList
的 setListData()
方法仅适用于 Array 或 Vector,因此您不能将其与 ArrayList
一起使用。
所以你可以:
- 创建
DefaultListModel
. - 使用
DefaultListModel
的addAll(...)
方法将ArrayList
的项目复制到模型中。 - 使用
JList
的setModel(...)
方法。
更好的方法是不创建两个 ArrayList 来保存初始数据。相反,只需创建一个 DefaultListModel
并将数据直接添加到模型中。这样数据就只在一个地方。要更改 JList
中显示的数据,您只需使用 setModel(...)
方法。