Java为当前线程添加进度条

标签 java swing progress-bar

如何添加一个进度条来显示当前进程完成需要多长时间?
我确实知道如何以简单的方式构造和使用进度条,但我不知道如何将它们与进程绑定(bind)。

例如,当我单击一个按钮时,我想打开一个 jfilechooser,这可能需要一些时间。我希望用户知道应用程序没有崩溃,并了解 jfilechooser 出现之前需要多长时间。

提前致谢

最佳答案

问题是,当处理不是你编写的类时,将进度条与实际进度链接起来并不容易。

如果您想将其与某个任务的进度绑定(bind),请按以下步骤操作:

  1. 为耗时的任务分配一个线程
  2. 使用父类中的静态字段作为您在任务中完成的进度。 (可以是从 1 到 100 的计数器)
  3. 每个特定时间段(1 秒)您都会检查该静态字段并用它设置进度条。
  4. 在您的任务中,您将漫长的流程划分为具体的步骤(即打开文件、处理、准备提取的数据等)。
  5. 每完成一个坚实的步骤后,就用迄今为止的进度更新父类中的静态字段。

确保使用信号量来规范写入和读取静态字段的过程。

关于Java为当前线程添加进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13551331/

相关文章:

java - CompareTo涉及非比较字段: how to maintain transitivity?

java - 全屏和窗口模式 Jframe

java - 单击按钮后将对象添加到 JPanel

java - 从 Action 监听器中开始游戏

java - 在javafx中下载图像时的进度条

python - 子进程在后台运行时 GUI 上的 Tk 进度条?

java - 为什么需要使用 Paths.get() 来获取 Path?为什么上面没有 .delete() 等方法?

java - 在Java中查找hashmap中某个项目的数量

java - 命令在终端中有效,但不适用于 Runtime.exec

jquery - 需要知道 jQuery UI Widget 是否已应用于 DOM 对象