改变JTable多列排序行为的最简单方法是什么



默认情况下,如果JTable的行排序器中有多个SortKey,则每次单击列标题都会使该列的SortKey成为主排序器。

我需要改变这种行为,这样第一次点击列标题就会使SortKey成为主要的,点击另一个列标题就会将该列的SortKey变成次要的,以此类推

此外,当达到maxSortKeys时,单击另一列(未排序)将触发排序键的洗牌。新单击的列将具有优先级最低的SortKey,主键列将失去其SortKey并且具有次要SortKey的列将成为主要列,等等。

目前,我实现了自己的TableHeader,以便在用户单击列标头时捕获事件,从而适当地打乱SortKeys。

举例说明:

[ One | Two ↑1 | Three ↓2 | Four | Five ↑3 ]
[     |        |          |      |         ]

用户点击第一列的标题后:

[ One ↑3 | Two  | Three ↓1 | Four | Five ↑2 ]
[        |      |          |      |         ]

我想知道的是,你是否认为这是一个好方法?

  • 需要覆盖每列的SortKeys,因为每列都应该是自己的arrays of SortKeys(如果需要,请确定)

  • 有理由在JViewport返回的可见矩形中使用最大6-8个SortKeys,否则我可以通过重新绘制看到性能问题和JScrollPane内部的重影

  • SortOrder.UNSORTED不是初始排序顺序,JTables视图无法存储,请记住,不知道正确的方法,只能从其model 中刷新JTable

  • 例如

  • 你可以用程序显示排序图标

相关内容

  • 没有找到相关文章

最新更新