在我的 JTable
中,除了其他列之外,我还有一个“序列号”列,它只是对表中的记录进行编号。我希望在通过单击 JTable
列标题对行进行排序时修复此列。排序进展顺利,但“序列号”在此过程中混淆了。有什么办法可以保留“序列号”吗?当我对行进行排序时,列是否固定?
感谢您对此的帮助。
示例:
SlNo 名称
约翰一书
2 彼得
3 阿历克
对此进行排序(单击“名称”列)后,我得到:
SlNo 名称
3 亚历克
约翰一书
2 彼得
但是,我希望结果为:
SlNo 名称
1 亚历克
约翰二书
3 彼得
最佳答案
您是否尝试过实现自己的 TableRowSorter ?
更新
我一直在挖掘代码来检查这一点。这是可行的,但你必须重新发明轮子才能让它发挥作用。
默认实现只是将行/列值进行比较(getValueAt(row, column)
),这很好,但不会为您提供任何上下文来做出您需要的决策make(即哪一行被排序,行值可能是什么等),事实上过滤器提供了更有值(value)的信息:P...
您真正想要覆盖的方法是私有(private)的...(DefaultRowSorter.compare
),但我不确定它会以任何方式执行您想要的操作...
您剩下的唯一解决方案是从头开始实现您的解决方案(从 RowSorter
开始),该解决方案能够为您提供执行子组排序所需的所有信息。像表格模型、比较行和列之类的东西......
关于java - JTable 行排序而不更改 "Sl No"列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12559835/