所以我有一个昂贵的类型,可以使用IO或从网络中获取数据来帮助它排序。
我的问题是JTable排序在事件线程上,因此会冻结GUI。
如何更改它以便它不会?
答案 0 :(得分:2)
从Java 6开始,就有RowSorter
接口。我自己没有处理它,但看起来应该可以异步地实现它并在完成时通知表(或者甚至可能已经是它的默认行为)。
答案 1 :(得分:0)
您可以启动一个新的Thread并传递一个匿名的Runnable实例:
new Thread(new Runnable() {
public void run() {
//Sort the JTable
}
}).start();
答案 2 :(得分:0)
我确实有一个我忘记发布的解决方案。但仍然不完美,所以最后我只使用了一个表库。
在处理排序和查看大量数据时,上釉列表非常好: http://www.glazedlists.com/