【发布时间】:2008-09-21 02:13:04
【问题描述】:
我知道JTable 可以按单列排序。但是是否可以允许多列排序或者我需要自己编写代码?
【问题讨论】:
我知道JTable 可以按单列排序。但是是否可以允许多列排序或者我需要自己编写代码?
【问题讨论】:
在您正在使用的RowSorter 中调用setSortKeys 时,您可以通过指定多个排序键来按多列排序。
【讨论】:
查看JXTable。 JXTable 是 JTable 的扩展,支持多列排序,以及 JTable 不提供的其他功能。它可从 JDNC / SwingLabs 免费获得。
【讨论】:
您应该能够设置 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));
【讨论】:
来自 netbeans 集合的 ETable。
它是 org-netbeans-swing-outline.jar 的一部分
谷歌搜索可以打开它。
ETable 主要是 Outline(TreeTable)的基础,但它内置了多列排序以及许多其他不错的功能
【讨论】:
“我知道Jtable可以按单列排序。但是是否可以允许多列排序或者我需要自己编写代码?”
表格排序和过滤由排序器对象管理。提供 sorter 对象的最简单方法是将 autoCreateRowSorter 绑定属性设置为 true;
JTable table = new JTable();
table.setAutoCreateRowSorter(true);
此操作定义了一个行排序器,它是 javax.swing.table.TableRowSorter 的一个实例。
【讨论】: