当我尝试将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
,但我不知道我做错了什么。
答案 0 :(得分:3)
你的getRowCount()
应该返回列表的大小,否则你告诉JTable,“嘿,我有5行”,实际上你最初得到了zip,零,zilch。 / p>
答案 1 :(得分:0)
正如错误试图告诉你的那样,你正试图从空列表中获取一个元素 你需要在列表中放入一些东西才能把它拿出来。
答案 2 :(得分:0)
您的错误肯定是指向该行(请参阅您的例外中的行号)
对象resultado = topFives.get(rowIndex)[columnIndex];
getRowCount()方法告诉表要显示的行数 getColumnCount()方法说明每行要显示的列数
现在该表具有足够的信息来逐个获取数据。它从第0行,第0列开始,然后从第0行第1列开始,直到达到你在getColumnCount()中的答案。然后它进入第1行并做同样的事情。
在您的情况下,只要它在第0行第0列中查询对象时,就会抛出异常,因为您试图从topFives获取索引0处不存在的元素。
你有异常:IndexOutOfBoundsException:Index:0,Size:0(你试图将元素设置为0(第一个),但是大小为0.所以你要求的索引,超出了列表的范围)