我有JXTable
,其中模型是不同对象的List
。在按所选列标题对视图进行排序后,尝试将视图索引映射到模型索引时出现问题。使用此代码,
int[] selecteds = getTableMember().getSelectedRows();
if (selecteds != null && selecteds.length > 0) {
for (int row : selecteds) {
int rr = getTableMember().convertRowIndexToModel(row);
System.out.println(row+":"+rr);
}
}
我得到了这个结果:
11:240 12:328 13:1174 14:328 15:1174
我无法理解为什么不同的视图索引会映射到同一个模型索引?
解决问题: 我在每行修改后立即调用fireTableRowsUpdated,因此所选索引不再正确。
答案 0 :(得分:2)
验证List
中的对象实际上是不同的。特别是,Comparator
使用的DefaultRowSorter
必须正确实施。请注意,默认值依赖于底层对象的toString()
方法,但您可以指定自己的实现。