java - 如何更新进度条

标签 java swing jprogressbar

我的应用程序中有一个简单的 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/

相关文章:

java - 使用 Java Swing 高效重画线条

java - 明确新线程启动和停止的时间和地点

java - 使用线程在 JTable 中插入行

java - 如何设置gridlayout jpanel的大小

java - 如何获取从 ButtonGroup 中选择的 JRadioButton

java - JProgressBar 不更新

java - JVM 系统属性 - 如何将其视为字符串文字

java - Java抛出异常后如何继续执行?

java - JProgressBar 没有完全填满

Java 在循环内使用 jProgressBar