2012-08-17 35 views
5

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

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

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

+0

是使用挥杆工。 – 2012-08-17 15:24:47

回答

2

是的,你遇到了所有新的Swing编程人员的陷阱 - 的Event Dispatching Thread

从根本上说,这是Thread任何摆动系统的心脏。是否负责将事件分派给所有的UI组件,并向repaint管理器发出更新UI的请求。

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

我建议你通过具有读通过Worker Threads and SwingWorkerConcurrency in Swing开始,因为我知道你要问,这个答案的读,它有许多的使用SwingWorker的例子,JTextArea appending problems