【发布时间】:2011-06-22 06:00:47
【问题描述】:
所以我有一个昂贵的排序,可以使用 IO 或从网上抓取数据来帮助它排序。
我的问题是 JTable 排序在事件线程上,因此冻结了 GUI。
如何更改它以使其不存在?
【问题讨论】:
所以我有一个昂贵的排序,可以使用 IO 或从网上抓取数据来帮助它排序。
我的问题是 JTable 排序在事件线程上,因此冻结了 GUI。
如何更改它以使其不存在?
【问题讨论】:
从 Java 6 开始,就有了 RowSorter 接口。我自己没有处理过它,但看起来应该可以异步实现它并在完成时通知表(或者这甚至可能已经是它的默认行为)。
【讨论】:
你可以启动一个新的 Thread 并传递一个匿名的 Runnable 实例:
new Thread(new Runnable() {
public void run() {
//Sort the JTable
}
}).start();
【讨论】:
我确实有一个我忘记发布的解决方案。但仍然不完美,所以最后我只使用了一个表格库。
Glazed 列表在处理大量数据的排序和查看方面非常出色: http://www.glazedlists.com/
【讨论】: