【发布时间】:2011-12-05 17:30:32
【问题描述】:
我实现了一个带有自定义AbstractTableModel 的JTable,用于实现分页。
我想每页显示 5 个项目,但我有一个问题:如果我有 N 个项目要显示(N 是 5 的倍数)一切都可以,但是如果我有 14 个元素要显示,我得到一个例外。问题是获取每个单元格值的方法超出了界限。特别是问题出在方法上
public Object getValueAt(int row, int col) {
int realRow = row + (pageOffset * pageSize);
return data[realRow].getValueAt(col);
}
实际上,我们有 5 行(从 0 到 4)和 14 个元素,但很明显,当我们尝试获取最后一个元素时,我们这样做了:realRow = 4 + (2*5),显然我在第 14 行没有元素。
我怎么解决这个问题?一旦到达第 14 个文件,我如何告诉我的程序停止获取价值?有可能吗?
【问题讨论】:
-
或许您可以澄清一下:在您的代码中,pageOffset 和 pageSize 是什么?这些不是任何类型的标准 tableModel 字段,因此了解它们的用途将有助于我们了解您的问题。
-
pageOffset 是页码(pageOffset = 0 表示从 0 到 4 的项目,1 表示从 5 到 9 的项目,2 表示从 10 到 14 的项目) pageSize 是每页的元素数(在此大小写等于 5)