0

当我尝试将我添加JTable到我的框架时,我收到此错误: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

import javax.swing.table.AbstractTableModel;
import java.util.List;
import java.util.ArrayList;

public class tablaFormato extends AbstractTableModel {

List<String[]> topFives = new ArrayList <String[]>();

@Override
public int getColumnCount() {
    // TODO Auto-generated method stub
    return 5;
}

@Override
public int getRowCount() {
    // TODO Auto-generated method stub
    return 5;
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {

    Object resultado = topFives.get(rowIndex) [columnIndex];

    return resultado;
}

}

问题出在resultado但我不知道我做错了什么。

4

3 回答 3

3

getRowCount()应该返回列表的大小,否则你告诉 JTable,“嘿,我有 5 行”,而实际上你最初得到的是 zip、零、zilch。

于 2013-11-03T23:46:04.273 回答
0

您的错误肯定指向该行(请参阅异常中的行号)

对象结果 = topFives.get(rowIndex) [columnIndex];

getRowCount() 方法告诉表格要显示多少行 getColumnCount() 方法告诉表格每行要显示多少列

现在表格有足够的信息来一一获取数据。它从第 0 行第 0 列开始,然后是第 0 行第 1 列等,直到达到您在 getColumnCount() 中回答的内容。然后它转到第 1 行并执行相同的操作。

在您的情况下,只要它请求第 0 行第 0 列中的对象,就会引发异常,因为您试图从 topFives 获取索引 0 处不存在的元素。

你有它的例外: IndexOutOfBoundsException: Index: 0, Size: 0 (你试图让元素为 0(第一个),但大小为 0。所以你要求的索引超出了列表的边界)

于 2013-11-03T23:57:38.677 回答
0

正如错误试图告诉你的那样,你试图从一个空列表中获取一个元素。
您需要先将某些内容放入列表中,然后才能将其取出。

于 2013-11-03T23:45:42.477 回答