gpt4 book ai didi

java - 如何在事件调度线程中同时运行两个组件?

转载 作者:行者123 更新时间:2023-11-29 08:14:08 25 4
gpt4 key购买 nike

我有一个 JButton,当我单击它时,我从数据库加载一些数据 + 初始化一个具有许多控件的 JDialog + 用加载的数据填充这些控件,然后显示缓慢的 JDialog。这需要大约 3 到 5 秒才能最终显示 JDialog,这会导致程序以一种糟糕的方式卡住。

我创建了一个带有来自 SwingX 的 JXBusyLabel 的小型 JDialog,以在加载和初始化如此缓慢的进程时显示忙碌标签。但是我如何在初始化慢速对话框的同时在 EDT 中运行这个繁忙的标签 JDialog?

注意:从数据库加载数据并不慢,但初始化繁重的 JDialog 及其组件会导致处理速度变慢。

最佳答案

  1. 显示忙碌对话框。

  2. 开始SwingWorker并在后台(数据库)执行所有长时间运行的任务

  3. 完成后,使用数据库中的数据创建大对话框(在 SwingWorker.done( 方法) 中)

  4. 隐藏繁忙对话框,显示大对话框。

关于java - 如何在事件调度线程中同时运行两个组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5869955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com