繁体   English   中英

导入期间,Swing Worker无法更新Jprogressbar

[英]Swing worker unable to update Jprogressbar during import

在SwingWorker实施方面,您好还是学习者。 我目前正在开发带有摇摆功能的桌面应用,该应用可以上传大量数据,耗时约15秒。 我想使用swingworker来管理任务并更新失败的jPrgressBar。 下面是代码正在使用

private class Update extends SwingWorker<Void, Void>{
    @Override
    protected Void doInBackground() throws Exception {
        importData();
            Thread.sleep(1000);
                return null;
    }
    protected void done(){

    }
}

这个私有类具有导入方法,我知道我必须对jprogressbar实现一个propertyychagelistner来监视和更新我的进度条,下面使用的代码。

public void runProgress(){
Update task = new Update();
task.addPropertyChangeListener(new PropertyChangeListener(){
@Override
public void propertyChange(PropertyChangeEvent evt) {
    if ("progress".equals(evt.getPropertyName())){
        jProgressBar1.setIndeterminate(false);
        jProgressBar1.setValue((Integer) evt.getNewValue());
    }
}
});
    task.execute();
 }

然后,我在执行的jButton下调用runPregress方法。 数据已成功导入,但是进度条没有任何反应。 请帮助我解决我的问题,并在仍然学习swingworker的工作方式的同时尽力提供尽可能多的解释

查看文档中的最后一个示例: http : //docs.oracle.com/javase/7/docs/api/javax/swing/SwingWorker.html

在方法“ doInBackGround()”中调用方法“ setProgress()”。 您应该像在最后一个示例(PrimeNumbersTask)中一样多次调用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM