我使用DefaultRowSorter和我的自定义行排序器类在JTable上实现了行排序。所有工作都可以很好地点击列标题来对表格进行排序。
但是如果我想从我的应用程序代码中调用排序操作(不点击列标题)呢?我必须拨打哪种方法?
编辑:
我以这种方式初始化我的表行排序器:
public void buildRowSorter() {
TableRowSorter<MyModel> sorter = new TableRowSorter<MyModel>((MyModel)this.table.getModel());
try {
sorter.setComparator(0, new MyCustomComparator<Double>(sorter,0));
sorter.setComparator(1, new MyCustomComparator<String>(sorter,1));
} catch (ParseException e) {
e.printStackTrace();
}
this.table.setRowSorter(sorter);
}
现在我希望,引用JTable(表),将关联的行排序器检索到我的模型的特定列,并对其调用排序操作。
答案 0 :(得分:4)
据我所知,你有一个自定义比较器(为什么它保留对分拣机的引用?看起来很腥)而不是自定义的RowSorter。
更改排序的目的是在RowSorter上调用toggleSortOrder(column)。要获得更细粒度的控制,您可以访问DefaultRowSorter,f.i。它的setSortKeys方法。
答案 1 :(得分:2)
尝试调用sort()
的{{1}}方法。