按列排序后,JTable模型不会重新刷新

时间:2017-07-31 14:30:59

标签: java swing jtable defaulttablemodel tablerowsorter

在排序列后尝试预览行时遇到问题。

例如: 在排序之前这是我的表

enter image description here

当我尝试按第二列排序时,我得到的结果是正常的:

enter image description here

但是当我尝试使用ID(A199)预览第二行的细节时,我得到(A195)的那些,它之前是排序前的第二行。 (我在双击行时添加了一个操作来预览行详细信息

所以我的假设是表模型没有正确更新,这就是我尝试过的:

TableRowSorter<PersonneMoraleSearchTableModel> sorter = new TableRowSorter<PersonneMoraleSearchTableModel>(model);
jTable.setRowSorter(sorter);
List<RowSorter.SortKey> sortKeys = new ArrayList<SortKey>(25);
sortKeys.add(new RowSorter.SortKey(1, SortOrder.ASCENDING));
sorter.setSortKeys(sortKeys);
sorter.setSortsOnUpdates(true);

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

由于the doc says TableRowSorter只关心视图而不关心表的模型。

在doc的描述中使用了一些函数来转换模型和视图之间的索引,以防使用排序/过滤功能(如你的情况)。

尝试更改ActionListener以使用这些功能,问题应该解决。