java - 更新 jProgressBar 的方法是什么?

标签 java swing jprogressbar event-dispatch-thread

我需要在从文件读取并执行一些操作的方法中更新 jProgressBar。 我尝试通过这种方法更新进度条:

 public void progressUpdate(int percent) {
     System.out.println("Update = "+percent);
     synchronized (jMainProgressBar) {
         jMainProgressBar.setValue(percent);
     }
     SwingUtilities.invokeLater(
         new Runnable() {

             public void run() {
             jMainProgressBar.updateUI();
             jMainProgressBar.repaint();
             }
         });
 }

只有当方法完成时,这才起作用。但是,如果我通过这种方法不断更新,那么什么也不会发生。

也许有人知道如何改进这种方法?

如果有更多建议 Worker thread 和其他建议也很好。

最佳答案

你可能想做

public void progressUpdate(final int percent) {
     SwingUtilities.invokeLater(new Runnable() {
         public void run() {
             jMainProgressBar.setValue(percent);
         }
     });
}

关于java - 更新 jProgressBar 的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10587931/

相关文章:

java - 如何在 Jframe 中显示 3d 模型

java - 使用 JProgressBar 运行 JFrame

Java - 代码在 2 个 switch 情况下执行

java - Tomcat 中配置数据源失败

java - 我应该在哪里放置事件监听器?

java - 如何在 Java 中保存首选项用户设置?

java - 未知格式(魔数(Magic Number) 5153)

java - 启动 webstart 而不下载...?

java - Nimbus L&F - 更改进度条的背景颜色

JProgressBar 内部的 Java swing 不透明 JProgressBar