在RowSort操作之后执行操作

时间:2009-06-12 15:22:05

标签: java swing jtable

我有一个JTable和一个TableRowSorter,我希望在排序完成后执行操作。我一直在浏览网页,到目前为止我还没有多少运气。

最初我认为只有一个RowSorterListener可以解决这个问题,但不幸的是它在排序结束后没有执行操作。

MouseListener标题中添加JTable可能有效,但解决方案并不是非常优雅。

有没有人有任何想法?

非常感谢!


修改(来自评论):以下内容添加到自定义TableModel类中的方法中,该类扩展了AbstractTableModel。只要在自定义JTable类中设置/指定TableModel,就会调用此方法。

sorter.addRowSorterListener(new RowSorterListener() {
    @Override public void sorterChanged(RowSorterEvent rowsorterevent) {
        rebuildMItems(); // The method which executes
    }
});

1 个答案:

答案 0 :(得分:3)

两种可能性:

  1. 我发现您有自定义RowSorter。你不能简单地在sort()方法的末尾添加对你的操作的调用吗?

    换句话说,你可以加上这个:

    @Override
    public void sort() {
        super.sort();
        doSomethingAfterSortingIsDone();
    }
    

    给你的分拣机?

  2. 您当前的方法(在RowSorterListener中执行)会执行两次操作:一次用于SORT_ORDER_CHANGED,一次用于SORTED。您可以查看活动的type并仅在正确的时间执行操作吗?