我的应用程序中有一个简单的 JForm 和一个 JDialog。 JDialog 框包含一个 JProgressBar eliment,我在 JDialog 中放置一个方法,
public void updateProgress(int val){
prgProgress.setValue(val); //prgProgress-> name of the JProgressBar
}
更新进度条。
当我尝试从 JForm 更新 JDialog 中的进度条时,JProgressBar 没有按预期更新,请告诉我可能是什么错误,
例如。
public class Status extends javax.swing.JDialog{
private javax.swing.JProgressBar prgProgress = new javax.swing.JProgressBar;
.....
public void updateProgress(int val){
prgProgress.setValue(val); //prgProgress-> name of the JProgressBar
}
.....
}
public class MyForm extends javax.swing.JInternalFrame {
Status s = new Status();
s.setVisible(true);
for(int i=0; i<100; i++){
s.updateProgress(i);
}
}
最佳答案
您对Concurency in Swing有疑问,Swing 是单线程的,如果您从 EDT 更新 GUI,则不会发生任何事情,您必须实现 SwingWorker用于更新JProgressBar ,带有描述的示例here
关于java - 如何更新进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9288923/