JavaSwing:将某些项强制到已排序JTable的末尾 1 周,6 日 Questions & Answers 154 如何强制某些表行位于已排序JTable的末尾?例如,如果有人单击某个列标题以按该列排序,则无论排序顺序如何,我都希望某些行位于表的末尾。我将如何着手实现这一点 谢谢
# 1 楼答案 注意:这不是答案,只是对困难和一些链接的总结 这是一项令人惊讶地难以解决的任务。内核中没有支持它的东西(即使在SwingX:-)也没有。特别是,比较器没有帮助,因为它不知道排序方向,也就是说,它不知道应该在顶部还是底部定位特定的行。唯一能够做到这一点的合作者可能是Rowstorer。由于DefaultRowSorter中的所有内容都是隐藏的,所以调整可以归结为一个完整的重新实现。一个例子是handle nulls had been published by Walter Laan在OTN和later described to be tweaked上覆盖一个更复杂的上下文
# 2 楼答案 可以实现^{}接口,如How to Use Tables: Sorting and Filtering所示,也可以实现^{}接口,如本example的^{}类所示。在这两种方法中,您都可以改变比较方法的结果,使所需的行显示在所有其他行之后 附录:@kleopatra的answer指出,Comparator必须应用于表的RowSorter上下文,而Comparable的实现将影响natural ordering。由于结果复杂且难以维护,您可能需要考虑另一种方法
# 1 楼答案
注意:这不是答案,只是对困难和一些链接的总结
这是一项令人惊讶地难以解决的任务。内核中没有支持它的东西(即使在SwingX:-)也没有。特别是,比较器没有帮助,因为它不知道排序方向,也就是说,它不知道应该在顶部还是底部定位特定的行。唯一能够做到这一点的合作者可能是Rowstorer。由于DefaultRowSorter中的所有内容都是隐藏的,所以调整可以归结为一个完整的重新实现。一个例子是handle nulls had been published by Walter Laan在OTN和later described to be tweaked上覆盖一个更复杂的上下文
# 2 楼答案
可以实现^{} 接口,如How to Use Tables: Sorting and Filtering所示,也可以实现^{} 接口,如本example的^{} 类所示。在这两种方法中,您都可以改变比较方法的结果,使所需的行显示在所有其他行之后
附录:@kleopatra的answer指出,
Comparator
必须应用于表的RowSorter
上下文,而Comparable
的实现将影响natural ordering。由于结果复杂且难以维护,您可能需要考虑另一种方法