如何使 JTable 不在事件线程上排序?

发布于 2024-10-16 03:03:37 字数 105 浏览 2 评论 0原文

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

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

我该如何改变它,让它不出现?

So I have an expensive sort that can use IO or grabbing data from the net to help it sort.

My problem is that JTable sort is on the event thread and therefore freezes the GUI.

How do I change it so it doesn't?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

花伊自在美 2024-10-23 03:03:37

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

Since Java 6, there's the RowSorter interface. I haven't dealt with it myself, but it looks as though it should be possible to implement it asynchronously and notify the table when it's done (or that may even already be its default behaviour).

马蹄踏│碎落叶 2024-10-23 03:03:37

您可以启动一个新线程并传递一个匿名 Runnable 实例:

new Thread(new Runnable() {


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

You can start a new Thread and pass a anonymous Runnable instance:

new Thread(new Runnable() {


        public void run() {
            //Sort the JTable
        }
    }).start();
豆芽 2024-10-23 03:03:37

我确实有一个解决方案,但我忘记发布了。但还是不够完美,所以最后我就用了一个表库。

Glazed Lists 非常适合处理排序和查看大量数据:
http://www.glazedlists.com/

I did have a solution which I forgot to post. But still wasn't perfect, so in the end I just used a table library.

Glazed lists is quite good in dealing with sorting and viewing large sets of data:
http://www.glazedlists.com/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文