6

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

4

5 回答 5

10

setSortKeys您可以通过在调用RowSorter您正在使用的方法时指定多个排序键来按多列排序。

于 2008-09-21T02:24:20.340 回答
2

您应该能够设置 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));
于 2008-09-21T02:19:23.863 回答
2

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

于 2008-09-21T02:23:05.820 回答
1

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

于 2008-09-21T06:16:18.177 回答
1

“我知道 Jtable 可以按单列排序。但是是否可以允许多列排序或者我需要自己编写代码?”

表排序和过滤由排序器对象管理。提供排序器对象的最简单方法是将 autoCreateRowSorter 绑定属性设置为 true;

JTable table = new JTable();
table.setAutoCreateRowSorter(true);

此操作定义了一个行排序器,它是 javax.swing.table.TableRowSorter 的一个实例。

于 2012-02-21T11:13:20.037 回答