JXTable以同样的方式监听排序和排序类似的表

时间:2010-01-14 14:30:23

标签: java swing sorting swingx jxtable

我有许多JXTable都有相同的列(但数据不同)。您可以通过单击其中一列的标题对数据进行排序。我现在想要的是,当点击其中一个表的标题时,其他表的排序方式相同。

2 个答案:

答案 0 :(得分:4)

您可以定义一个引用每个JTable的{​​{1}}的中介类,并将自己注册为每个分拣机的RowSorter。当给定的分拣机发生变化时,您可以使用RowSorterListener检索其当前的排序键列表,并使用getSortKets()将它们传递给其他每个分拣机。

示例

首先我们定义中介类:

setSortKeys(List<? extends SortKey>)

现在我们实施public class SortMediator implements RowSorterListener { private final List<RowSorter> sorters; private boolean changing; public void addRowSorter(RowSorter sorter) { this.sorters.add(sorter); } public void sorterChanged(RowSorterEvent e) { ... } } 来响应给定的分拣机事件:

sorterChanged(RowSorterEvent e)

答案 1 :(得分:0)

我不这样做,因为它控制了用户:他/她可能想要对表进行不同的排序,以比较不同的数据。

而是在“视图”菜单中添加“排序依据”选项。更改此选项将对所有表进行排序,但除非用户想要对特定表进行排序,否则请将它们单独保留。