如何添加一个进度条
来显示当前进程完成需要多长时间?
我确实知道如何以简单的方式构造和使用进度条,但我不知道如何将它们与进程绑定(bind)。
例如,当我单击一个按钮时,我想打开一个 jfilechooser,这可能需要一些时间。我希望用户知道应用程序没有崩溃,并了解 jfilechooser 出现之前需要多长时间。
提前致谢
最佳答案
问题是,当处理不是你编写的类时,将进度条与实际进度链接起来并不容易。
如果您想将其与某个任务的进度绑定(bind),请按以下步骤操作:
- 为耗时的任务分配一个线程
- 使用父类中的静态字段作为您在任务中完成的进度。 (可以是从 1 到 100 的计数器)
- 每个特定时间段(1 秒)您都会检查该静态字段并用它设置进度条。
- 在您的任务中,您将漫长的流程划分为具体的步骤(即打开文件、处理、准备提取的数据等)。
- 每完成一个坚实的步骤后,就用迄今为止的进度更新父类中的静态字段。
确保使用信号量来规范写入和读取静态字段的过程。
关于Java为当前线程添加进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13551331/