使用for循环设置JList值

时间:2016-11-14 05:22:08

标签: java arrays swing

我有一个字符串数组,我想动态应用为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);

我做错了什么?

1 个答案:

答案 0 :(得分:2)

不要创建自定义ListModel。

您可以使用DefaultListModel。它有add(...)remove(...)等方法,可以动态更新数据。