java如何使用对象列表,使用JTable中定义的起始位置设置值?
我有一个我想放在JTable中的对象列表。下面的映射有一个索引作为键,一个数组作为值。整数数组的第一个元素是行号,第二个元素是列号:
mStartLocationMap = new HashMap<Integer, int[]>(); // private static
mStartLocationMap.put(1,new int[]{0,0});
mStartLocationMap.put(2,new int[]{1,0});
mStartLocationMap.put(3,new int[]{0,1});
mStartLocationMap.put(4,new int[]{1,1});
根据我得到的索引,我检索适当的起始位置。该表为16行X 24列。然而,逻辑是这样的,无论起始位置是什么,我拥有的对象的arraylist,每个对象都必须放置在其他每个单元格中,直到我到达列的末尾。然后,这些行也会每隔一行递增一次。以下是最终产品的外观(这是在我的列表中有96个元素的情况下完成的,代码如下所示:
这是我的代码:
// rowStart and colStart can be 0 or 1
int counter = 0;
for(int row=rowStart; row<rowCount ;row=row+2) // rowcount =16
{
for(int col=colStart; col<colCount; col=col+2) // colcount=24
{
// myObjs is an ArrayList that contains 96 or less elements. This line throws the exception
MyObject temp = myObjs.get(counter);
myTable.setValueAt(temp,row,col);
counter++;
}
}
我知道这种方法行不通,但我不确定如何在不抛出ArrayIndexOutOfBoundsException
的情况下以这种模式填充表格。我知道哪一行抛出了错误,但我想不出另一种方法来实现我想要的——那就是将列表中的所有对象设置到表中,无论列表的大小
谁能给我指出正确的方向吗
谢谢
# 1 楼答案
您可能会在这一行遇到异常:
因为您的数组列表将为空,并且您正在尝试访问第0个元素