有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSwing:将某些项强制到已排序JTable的末尾

如何强制某些表行位于已排序JTable的末尾?例如,如果有人单击某个列标题以按该列排序,则无论排序顺序如何,我都希望某些行位于表的末尾。我将如何着手实现这一点

谢谢


共 (2) 个答案

  1. # 1 楼答案

    注意:这不是答案,只是对困难和一些链接的总结

    这是一项令人惊讶地难以解决的任务。内核中没有支持它的东西(即使在SwingX:-)也没有。特别是,比较器没有帮助,因为它不知道排序方向,也就是说,它不知道应该在顶部还是底部定位特定的行。唯一能够做到这一点的合作者可能是Rowstorer。由于DefaultRowSorter中的所有内容都是隐藏的,所以调整可以归结为一个完整的重新实现。一个例子是handle nulls had been published by Walter Laan在OTN和later described to be tweaked上覆盖一个更复杂的上下文

  2. # 2 楼答案

    可以实现^{}接口,如How to Use Tables: Sorting and Filtering所示,也可以实现^{}接口,如本example^{}类所示。在这两种方法中,您都可以改变比较方法的结果,使所需的行显示在所有其他行之后

    附录:@kleopatra的answer指出,Comparator必须应用于表的RowSorter上下文,而Comparable的实现将影响natural ordering。由于结果复杂且难以维护,您可能需要考虑另一种方法