Java 使用for循环设置JList值

Java 使用for循环设置JList值,java,arrays,swing,Java,Arrays,Swing,我有一个字符串数组,我希望将其动态应用为JList中的项。阵列中的项目将频繁更改,因此Jlist型号也需要更改。这是我现在拥有的一个例子: listAvail = new JList(); listAvail.setBorder( new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null)); listAvail.setModel(new Abstra

我有一个字符串数组,我希望将其动态应用为JList中的项。阵列中的项目将频繁更改,因此Jlist型号也需要更改。这是我现在拥有的一个例子:

    listAvail = new JList();
    listAvail.setBorder(
            new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));
    listAvail.setModel(new AbstractListModel()
    {
        String[] values = new String[] { "Feature 1", "Feature 2", "Feature 3", "Feature 4",
                "Feature 5" };

        public int getSize()
        {
            return values.length;
        }

        public Object getElementAt(int index)
        {
            return values[index];
        }
    });
    scrollPane.setViewportView(listAvail);
我想用如下代码替换该代码:

    listAvail = new JList();
    listAvail.setBorder(
            new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));
    listAvail.setModel(new AbstractListModel()
    {

        String[] values = new String[5];

        for (int i = 0; i < 5; i++)
        {
            values[i] = "Feature" + i;
        }


        public int getSize()
        {
            return values.length;
        }

        public Object getElementAt(int index)
        {
            return values[index];
        }
    });
    scrollPane.setViewportView(listAvail);
listAvail=new JList();
listAvail.setOrder(
新的TitledBorder(null,“,TitledBorder.LEADING,TitledBorder.TOP,null,null));
setModel(新的AbstractListModel()
{
字符串[]值=新字符串[5];
对于(int i=0;i<5;i++)
{
值[i]=“特征”+i;
}
公共int getSize()
{
返回值.length;
}
公共对象getElementAt(int索引)
{
返回值[索引];
}
});
scrollPane.setViewportView(listAvail);

我做错了什么?

不要创建自定义列表模型


您可以使用
DefaultListModel
。它有像添加(…)和删除(…)这样的方法,允许您动态更新数据。

不创建自定义列表模型


您可以使用
DefaultListModel
。它有一些方法,如
add(…)
remove(…)
,这些方法允许您动态更新数据。

1)要更快获得更好的帮助,请发布或。2) “我做错了什么?”出了什么问题?假装我们不是坐在你的电脑前,也不是读心术的人。你以为会发生什么?实际上发生了什么?嗨,我建议你看一看(在了解这些JThings时,他们确实帮了我很多忙。如果你不知道如何使用它们,我可以进一步教你如何通过它们进行nagivate),因为我认为你误解了JList的用法以及列表模型对他们的意义。1)为了更快地获得更好的帮助,发布一个or。2) “我做错了什么?”出了什么问题?假装我们不是坐在你的电脑前,也不是读心术的人。你以为会发生什么?实际上发生了什么?嗨,我建议你看一看(他们在学习这些JThings时确实帮了我很多忙。如果你不知道如何使用它们,我可以进一步教你如何通过它们进行nagivate),因为我认为你误解了JList的用法以及列表模型对他们来说是什么。这是我一直应该做的。我真的很感谢你的帮助!这是我一直应该做的。我真的很感谢你的帮助!