如何在Java中使用Progress Bar(Netbeans GUI)

Mat*_*lls 5 java netbeans swingx swingworker progress-bar

我对Java不太熟悉,并且无法获得进度条.我正在使用Netbeans的内置GUI制造商.目前,我的程序将图像从目录读入图像阵列.显然这需要一些时间,因此我想要一个简单的进度条来更新用户以了解加载的程度.我使用了其中一个拖放进度条组件.

- 我目前可以获取目录中的文件数量,并可以计算加载的文件的百分比 - 文件成功加载到数组中,但进度条仅在加载所有文件后更新.我已经尝试重新验证和重新绘制,但我循环但这不起作用 - 我已经尝试了docs.oracle上的各种教程,但似乎无法得到任何工作. - 我相信SwingWorker是我应该使用的类,这是正确的吗?

任何有关示例或一些建议的帮助将不胜感激!谢谢!

Mad*_*mer 2

是的,您已经陷入了所有新 Swing 程序员的陷阱 -事件调度线程

基本上来说,这Thread是任何 Swing 系统的核心。负责向所有 UI 组件分派事件,并向重绘管理器发出更新 UI 的请求。

如果您在 中执行任何耗时的任务EDT,您将阻止 UI 更新。

我建议您首先阅读Worker Threads 和 SwingWorker以及Swing 中的并发性,因为我知道您会问,请阅读这个答案,它有许多使用SwingWorker, JTextArea 附加问题的示例