java - 在 RowSort 操作之后执行操作

标签 java swing jtable

我有一个JTable 和一个TableRowSorter,我想在排序完成后 执行操作。我一直在浏览网页,但到目前为止我运气不佳。

最初我认为只需要一个 RowSorterListener 就可以解决问题,但不幸的是它不会在排序完成后执行操作。

MouseListener 添加到 JTable header 中可以工作,但解决方案并不是非常优雅。

有没有人有什么想法?

非常感谢!


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

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

最佳答案

两种可能性:

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

    换句话说,你能不能加上这个:

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

    到你的分拣机?

  2. 您当前的方法(在 RowSorterListener 中执行)执行两次操作:一次针对 SORT_ORDER_CHANGED,一次针对 SORTED。你能查一下 Activity 的type吗?并且只在正确的时间执行操作?

关于java - 在 RowSort 操作之后执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/987252/

相关文章:

java - 扩展 JFrame

Java GUI Jframe 异常处理

java - 如何在 GUI 中显示 HashMap 数据?

java - 使用 TableModelListener 从数据库检索数据到 JTable(JTable 中有 JCheckbox)时出错

java - 在 JTable 中使用 JEditorPane 代替默认的 JLabel

java - 如何远程查看和编辑 Infinispan 缓存数据

java - Db2 9 抛出 InvalidDataAccessResourceUsageException 而不是 PermissionDeniedDataAccessException

java - 在 JPanel 中更新矩形或任何其他图像的位置而不重叠

java - 如何检测spring mvc中的错误

作为枚举的 java 属性文件