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