如何更新j进度条

发布于 2025-01-06 06:34:35 字数 827 浏览 0 评论 0原文

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

}

I have a simple JForm and a JDialog in my application. JDialog box contains a JProgressBar eliment and I'put a method in the JDialog as,

 public void updateProgress(int val){
        prgProgress.setValue(val); //prgProgress-> name of the JProgressBar
    }

to update the progress bar.

When I try to update the progress bar in my JDialog from the JForm, JProgressBar doesn't update as expected please tell me what could be the error,

Ex.

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);
    }

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雨巷深深 2025-01-13 06:34:35

您对 Swing 中的并发性有疑问,Swing 是单一的线程化并且如果您从 EDT 更新 GUI,则不会发生任何事情,您必须实现 SwingWorker 用于更新 JProgressBar< /a>,带有说明的示例此处

You have a issue with Concurency in Swing, Swing is single threaded and nothing happends if you update GUI out of EDT, you have to implement SwingWorker for updating JProgressBar, example with descriptions here

天暗了我发光 2025-01-13 06:34:35

首先,我从上面的代码中看不到您已将 JProgressBar 添加到 JDialog 中,但我假设您已经这样做了。
其次,您没有通过构造函数或成员函数 setMaximum() 设置 JProgressBar 的最大值。这可能是没有进展的原因。

参见:

http://docs.oracle.com/javase/tutorial/ uiswing/components/progress.html

Firstly, I can't see from your code above showing that you have added the JProgressBar into the JDialog, but I assume you have done so.
Secondly, you didn't set the maximum value of the JProgressBar, from either constructor or member function setMaximum(). This might be a reason of showing no progress.

See Also:

http://docs.oracle.com/javase/tutorial/uiswing/components/progress.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文