尝试将元素添加到listModel

时间:2016-03-06 02:43:51

标签: java awt jlist defaultlistmodel

由于某种原因,当我尝试向ListModel添加元素时,我不断收到此错误:

  

线程“AWT-EventQueue-0”中的异常java.lang.ArrayIndexOutOfBoundsException:1> = 1

这是它发生的代码块:

if (shoppingCart.getModel().getSize()  > 0)
{
        for (int i = 0; i <= shoppingCart.getModel().getSize();i++)
        {
            Object a = shoppingCart.getModel().getElementAt(i);
            System.out.println(a.toString()); // this is to test if it gets the right value
                                              // it does.
            booksToAdd.addElement(a.toString()); //but here it cannot add it

        }

}

我不明白出了什么问题。我试图做研究,它提出了类似于数组的界限,但我不知道数组与此有什么关系。

2 个答案:

答案 0 :(得分:0)

由于getSize是元素的数量而i是索引,如果您允许i一直向上移动,那么您将需要另外一个元素然后你的数组/列表(索引从零开始,计数从1开始)

你应该有

for (int i = 0; i < shoppingCart.getModel().getSize();i++)

而不是i <= shoppingCart.getModel().getSize()

答案 1 :(得分:0)

可能会在shoppingCart.getModel()。getSize()的初始检查中抛出错误。

您可以使用以下内容作为列表项目存在的初步检查:

if(CollectionUtils.isNotEmpty(shoppingCart.getModel())
相关问题