【问题标题】:How to make a JTable sort not on the event thread?如何使 JTable 排序不在事件线程上?
【发布时间】:2011-06-22 06:00:47
【问题描述】:

所以我有一个昂贵的排序,可以使用 IO 或从网上抓取数据来帮助它排序。

我的问题是 JTable 排序在事件线程上,因此冻结了 GUI。

如何更改它以使其不存在?

【问题讨论】:

    标签: java swing sorting jtable


    【解决方案1】:

    从 Java 6 开始,就有了 RowSorter 接口。我自己没有处理过它,但看起来应该可以异步实现它并在完成时通知表(或者这甚至可能已经是它的默认行为)。

    【讨论】:

    • 这是一个正确方向的开始。目前我正在使用 TableRowSorter。有没有在这方面有帮助的示例代码或库?
    【解决方案2】:

    你可以启动一个新的 Thread 并传递一个匿名的 Runnable 实例:

    new Thread(new Runnable() {
    
    
            public void run() {
                //Sort the JTable
            }
        }).start();
    

    【讨论】:

    • 恐怕这对我没有帮助。我不会手动对表格进行排序。
    【解决方案3】:

    我确实有一个我忘记发布的解决方案。但仍然不完美,所以最后我只使用了一个表格库。

    Glazed 列表在处理大量数据的排序和查看方面非常出色: http://www.glazedlists.com/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多