有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用自定义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) 个答案

  1. # 1 楼答案

    JListsetListData()方法仅适用于数组或向量,因此不能将其用于ArrayList

    因此,您可以:

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

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