JTable中的多列排序

时间:2020-03-06 14:29:54  来源:igfitidea点击:

我知道JTable可以按单个列排序。但是是否可能允许多列排序,还是我需要自己编写代码?

解决方案

我们应该能够设置TableRowSorter和与其关联的Comparator。
例子:

TableModel myModel = createMyTableModel();
JTable table = new JTable(myModel);
TableRowSorter t = new TableRowSorter(myModel);
t.setComparator(column that the comparator works against, Comparator<?> comparator);
table.setRowSorter(new TableRowSorter(myModel));

查看JXTable。 JXTable是JTable的扩展,支持多列排序以及JTable不提供的其他功能。它可以从JDNC / SwingLabs免费获得。

我们可以通过在使用的" RowSorter"中调用" setSortKeys"时指定多个排序键来对多列进行排序。

来自netbeans集合的ETable。
它是org-netbeans-swing-outline.jar的一部分
谷歌搜索把它打开了。
ETable主要是Outline(TreeTable)的基础,但它内置了多列排序以及许多其他不错的功能