5

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

  • 我目前可以获取目录中的文件数,并且可以计算加载文件的百分比
  • 文件成功加载到数组中,但只有在加载所有文件后才会更新进度条。我尝试在循环时重新验证和重新绘制,但这不起作用
  • 我已经尝试过 docs.oracle 上的各种教程,但似乎没有任何效果。
  • 我相信 SwingWorker 是我应该使用的课程,这是正确的吗?

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

4

1 回答 1

2

是的,你遇到了所有新的 Swing 程序员的陷阱——事件调度线程

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

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

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

于 2012-08-17T15:27:36.593 回答