如何在Java(Netbeans GUI)中使用进度条

5
我对Java不是很有经验,正在努力让进度条工作。我正在使用Netbeans内置的GUI制造器。目前,我的程序从一个目录中读取图像到一个图像数组中。显然,这需要一些时间,因此我想要一个简单的进度条来更新用户知道加载的进度如何。我已经使用了其中一个拖放进度条组件。
  • 我目前可以获取目录中的文件数,并且可以计算已加载文件的百分比
  • 文件成功加载到数组中,但进度条只在所有文件加载后更新。我尝试在循环时重新验证和重绘,但这并不起作用
  • 我尝试了docs.oracle上的各种教程,但似乎什么都无法正常工作。
  • 我认为应该使用SwingWorker类,这正确吗?

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

1个回答

2
是的,您遇到了所有新的Swing程序员都会陷入的陷阱-事件分派线程。
基本上来说,这个线程是任何Swing系统的核心。它负责将事件分派到所有UI组件,并向重绘管理器发送请求以更新UI。
如果您在EDT中执行任何耗时的任务,将会阻止UI的更新。
我建议您首先阅读Worker Threads和SwingWorker以及Concurrency in Swing,因为我知道您会问,请阅读这个答案,它有许多使用SwingWorker的示例,JTextArea appending problems。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接