我有一个JTable
和一个TableRowSorter
,我希望在排序完成后执行操作。我一直在浏览网页,到目前为止我还没有多少运气。
最初我认为只有一个RowSorterListener
可以解决这个问题,但不幸的是它在排序结束后没有执行操作。
在MouseListener
标题中添加JTable
可能有效,但解决方案并不是非常优雅。
有没有人有任何想法?
非常感谢!
修改(来自评论):以下内容添加到自定义TableModel
类中的方法中,该类扩展了AbstractTableModel
。只要在自定义JTable
类中设置/指定TableModel
,就会调用此方法。
sorter.addRowSorterListener(new RowSorterListener() {
@Override public void sorterChanged(RowSorterEvent rowsorterevent) {
rebuildMItems(); // The method which executes
}
});
答案 0 :(得分:3)
两种可能性:
我发现您有自定义RowSorter
。你不能简单地在sort()
方法的末尾添加对你的操作的调用吗?
换句话说,你可以加上这个:
@Override
public void sort() {
super.sort();
doSomethingAfterSortingIsDone();
}
给你的分拣机?
您当前的方法(在RowSorterListener
中执行)会执行两次操作:一次用于SORT_ORDER_CHANGED
,一次用于SORTED
。您可以查看活动的type并仅在正确的时间执行操作吗?