这采取了两步解决方案:
首先,我使用TableSorter来对数据更改进行排序,而不是使用
autoCreateRowSorter:
sorter = new TableRowSorter<MyTableModel>(m);table.setRowSorter(sorter);sorter.setSortsonUpdates(true);
然后,我不得不更改更新方法以更新整个表。在
fireTableCellUpdated与
fireTableRowsUpdated只重绘进行了更新,而不是整个表中的特定行(这意味着你会得到一个复本出现的条目改变,只要它是重绘后。所以,我改变
fireTableCellUpdated(row, col);
至
fireTableRowsUpdated(0, data.size() - 1);
现在它可以正确排序,即使发生数据更改也可以保留选择。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)