我正在使用JProgressBar在我的框架上显示进度条。进度条设置为不确定模式,因为我不知道任务何时结束。而不是显示正常的进度条,而是显示一个奇怪的橙色波
当任务运行时,wave会继续移动。结束后,该值设置为100,并以形式或橙色块显示它(也在移动!)。我使用以下代码显示进度条
Container content = this.getContentPane();
content.setLayout(null);
prog = new JProgressBar(0, 100);
prog.setValue(0);
prog.setStringPainted(true);
Dimension preferredSize;
preferredSize=new Dimension();
preferredSize.width=300;
preferredSize.height=15;
prog.setPreferredSize(preferredSize);
content.add(prog);
Insets insets = content.getInsets();
Dimension size;
size = prog.getPreferredSize();
prog.setBounds(30+insets.left, 180+insets.top, size.width, size.height);
如何将其更改回正常进度条?
答案 0 :(得分:2)
我没有深入研究它,但它可能是Nimbus LaF的一个错误 无论如何,为了让橙色块停止移动(当它的值设置为100时),你似乎还需要调用:
prog.setIndeterminate(false);
如果你想“自动化”这个,你可以继承JProgressBar,例如:
prog = new JProgressBar(0, 100) {
public void setValue(int newValue) {
super.setValue(newValue);
if (newValue >= this.getMaximum()) {
this.setIndeterminate(false);
}
}
};
prog.setValue(0);
...