gpt4 book ai didi

java - Swing JProgressBar 没有像我期望的那样重绘

转载 作者:行者123 更新时间:2023-11-29 04:00:28 25 4
gpt4 key购买 nike

大家好,我有一个非常简单的问题,有人应该可以帮助我解决。我想要的只是一个带有更新进度条的小框架,现在它没有更新:

final JProgressBar bar = new JProgressBar(0,250000);
bar.setValue(1000);
bar.setIndeterminate(false);
JOptionPane j = new JOptionPane(bar);
final JDialog d = j.createDialog(j,"Expierment X");
d.pack();
d.setVisible(true);
bar.setValue(40000);

40,000 的值没有显示,只有区区 1000。我宁愿不必编写任何类来处理重绘调用或执行此操作所涉及的任何内容(永远没有使用过 Swing)。

谢谢!

最佳答案

这是因为 createDialog block ,所以 bar.setValue 不会被调用,直到您点击对话框上的确定。

您应该在不同的线程中更新进度条。

例如:

    final JProgressBar bar = new JProgressBar(0,250000);
bar.setValue(1000);
bar.setIndeterminate(false);
JOptionPane j = new JOptionPane(bar);

Thread t = new Thread(){
public void run(){
for(int i = 1000 ; i < 250000 ; i+=10000){
bar.setValue(i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
}
};
t.start();

final JDialog d = j.createDialog(j,"Expierment X");
d.pack();
d.setVisible(true);

关于java - Swing JProgressBar 没有像我期望的那样重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3917417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com