java - 如何使用progressBar查看线程进度

标签 java multithreading progress-bar

我第一次尝试弄乱 progressBar。我想使用进度条记录线程 --- 我看过 this但它没有帮助。

有人知道怎么做吗?

我尝试使用 mp3 文件的字节来更新进度条,但我没有成功。 我想使用我用来播放 mp3 文件的线程。

这是 mp3 播放器的屏幕截图。

The mp3 player I'm working on

最佳答案

通常的问题是,在更新进度条的值时,您还需要适当的 GUI 刷新。前段时间我用进度条做了异步加载,我用的正是那个教程。

请注意,对于压缩音频文件,字节计数器的使用可能不准确,如果最初没有进行完全解压,可能不是您想要的。

当然,您必须使用 constructor 适本地设置进度条的值以及最小值和最大值。和/或 setMaximum() , setMinimum()setValue() , 在开始播放之前,例如

progressBar.setMinimum(0);
progressBar.setMaximum(totalTime);
progressBar.setValue(0);

不是

progressBar.setValue(elapsedTime);

在您的工作线程中,使用PropertyChangeListener 接口(interface)和setProgress() SwingWorker 来自 worker 实例,如下例所示。 只需根据您的需要调整代码:

http://docs.oracle.com/javase/tutorial/uiswing/examples/components/ProgressBarDemoProject/src/components/ProgressBarDemo.java

关于java - 如何使用progressBar查看线程进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14787016/

相关文章:

java - Android 后台下载多个文件

android - 如何在Android中设置进度条的最大值

html - 如何在CSS中使进度条的 Angular 变圆

java - 将 Hadoop MapReduce 输出写入 2 个平面文件

java - ble 信标发射器应用程序运行后关闭

c - GDB和C的多线程调试教程

c++ - 如何在单独的线程中创建带有进度条的 MFC 对话框?

java - Jenkins Junit 中的 WireMock - BindException : Address already in use

java - 如何使用 Spring 在 Postgresql 中存储 java.util.ArrayList

c# - 如何在 C# 中转换传递给 Thread 的参数的数据类型