0

我是java初学者。所以请让我知道如何同时运行进度条和我的应用程序代码。换句话说,只要我的应用程序代码正在做一些处理,我想让我的进度条增加。请详细说明它与代码。我认为我必须同时添加两个线程。一个线程更新进度条线程但我不确定它是否正确。我已经编写了这段代码来增加进度条(硬编码)

       class ProgressMonitor implements Runnable {

    public void run() {
        jProgressBar1.setStringPainted(true);
        //run untill 100% complete
        while (progress < 100) {
            //update the progressbar
            jProgressBar1.setValue(++progress);
            jProgressBar1.repaint();
            try {

                //Sleep for .25 second
                Thread.sleep(250);
            } catch (InterruptedException ex) {
            }
        }

    }   
4

3 回答 3

3

问题基本上是长时间运行的任务阻塞了更新 GUI 的事件调度线程。一种解决方案是在SwingWorker.

在后台线程中执行冗长的 GUI 交互任务的抽象类。..

有关更多详细信息,另请参阅本教程的Swing 课程中的并发。

于 2012-02-11T14:39:00.963 回答
1

解决方案确实是使用SwingWorker. 如果您想与 a 结合使用JProgressBar,我建议您看一下JProgressBar教程,其中有一个SwingWorker与结合使用的示例JProgressBar。或者你在这个网站上做一个快速搜索,找到像这样的例子

于 2012-02-12T10:40:02.817 回答
0

您可以在本主题中了解有关此和 SwingWorker 的更多信息:

在多任务应用程序中管理 GUI 和 EDT

于 2012-02-11T14:53:38.620 回答