0

我想立即更改两个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 的一闪。

所以我搜索了很多信息。

我使用了线程、swingworker、swingutilities(invokelater)

但我无法解决。

我该如何解决这个问题。请帮我。

4

1 回答 1

0

您可能希望将在这 2 秒内完成的任务分配给工作线程。假设您想要 A.) 减少一个进度条和 B.) 增加另一个进度条。

您可以通过实现其 run 方法来分配一个线程来执行 A.)。然后另一个线程将在 B 上完成工作。)

现在同时,您希望您的主线程(这是分配这两个线程开始工作的原因)等到您的工作线程完成。因此,在执行thread1.start()and之后thread2.start(),您将通过执行 join 来等待他们完成,如下所示:

try {
    thread1.join();
    thread2.join();
} catch (Exception e) { e.printStackTrace() }
于 2013-11-05T22:40:55.607 回答