[英]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.