我想立即更改两个progressBar。但我不能。
我所说的是......
nextButton.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
WorkProgressBar.setVisible(true);
FileProgressBar.setVisible(false);
AND SO ON(about 2 secs.)
WorkProgressBar.setVisible(false);
FileProgressBar.setVisible(true);
}
}
该代码大约需要2秒或更长时间。
但我能看到的只是ProgressBar的闪烁。
所以我搜索了很多信息。
我使用过thread,swingworker,swingutilities(invokelater)
但我无法解决。
我该如何解决这个问题。请帮帮我。
答案 0 :(得分:0)
您可能希望将在这2秒内完成的任务分配给工作线程。让我们说你想要A.)减少一个进度条和B.)增加另一个进度条。
您可以通过实现其run方法来分配一个线程来执行此操作。然后另一个线程将在B上完成工作。)
现在,在此期间,您希望主线程(这是指定这两个线程开始执行其工作的内容)等待您的工作线程完成。所以在完成thread1.start()
和thread2.start()
之后,你会等待他们通过加入完成,如下所示:
try {
thread1.join();
thread2.join();
} catch (Exception e) { e.printStackTrace() }