排序后JXTable convertRowIndexToModel错误结果?

时间:2011-08-10 19:07:55

标签: java swing swingx jxtable

我有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,因此所选索引不再正确。

1 个答案:

答案 0 :(得分:2)

验证List中的对象实际上是不同的。特别是,Comparator使用的DefaultRowSorter必须正确实施。请注意,默认值依赖于底层对象的toString()方法,但您可以指定自己的实现。