默认情况下,如果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
-
例如
-
你可以用程序显示排序图标