JProgressBar显示奇怪的orang波

时间:2013-06-05 12:36:03

标签: java swing jprogressbar nimbus

我正在使用JProgressBar在我的框架上显示进度条。进度条设置为不确定模式,因为我不知道任务何时结束。而不是显示正常的进度条,而是显示一个奇怪的橙色波 1

当任务运行时,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);

如何将其更改回正常进度条?

1 个答案:

答案 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);
...