使用自定义 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 以在按钮单击事件中显示每个列表。

JListsetListData() 方法仅适用于 Array 或 Vector,因此您不能将其与 ArrayList 一起使用。

所以你可以:

  1. 创建 DefaultListModel.
  2. 使用 DefaultListModeladdAll(...) 方法将 ArrayList 的项目复制到模型中。
  3. 使用JListsetModel(...)方法。

更好的方法是不创建两个 ArrayList 来保存初始数据。相反,只需创建一个 DefaultListModel 并将数据直接添加到模型中。这样数据就只在一个地方。要更改 JList 中显示的数据,您只需使用 setModel(...) 方法。