排序JTable的条目而不点击列标题

时间:2011-07-07 12:04:58

标签: java swing sorting jtable

我使用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(表),将关联的行排序器检索到我的模型的特定列,并对其调用排序操作。

2 个答案:

答案 0 :(得分:4)

据我所知,你有一个自定义比较器(为什么它保留对分拣机的引用?看起来很腥)而不是自定义的RowSorter。

更改排序的目的是在RowSorter上调用toggleSortOrder(column)。要获得更细粒度的控制,您可以访问DefaultRowSorter,f.i。它的setSortKeys方法。

答案 1 :(得分:2)

尝试调用sort()的{​​{1}}方法。