0

默认情况下,如果您在 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 ]
[        |      |          |      |         ]

我想知道您是否认为这是一个好方法?

4

1 回答 1

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

  • SortKeys在可见的矩形返回中使用 max 6-8是合理的JViewport,否则我可以看到性能问题和JScrollPane重绘内部的重影

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

  • 例如

  • 您可以以编程方式显示排序图标

于 2013-07-22T09:33:48.107 回答