如何在Java JProgressBar中显示没有%符号的数字?

时间:2011-12-14 21:30:08

标签: jprogressbar

当我使用JProgressBar时,我希望它显示0到32之间的数字,而不是百分比,所以在它启动之前,它会显示0,在我点击开始按钮后,它会显示1,2,3 .. .32

怎么做?

1 个答案:

答案 0 :(得分:0)

一种方法是覆盖getString()JProgressBar方法:

public class CustomProgressBar extends javax.swing.JProgressBar {

    @Override
    public String getString() {
        return getValue() + "";
    }

}

假设您分别使用setValue()方法将最小值和最大值设置为0和32以及进度值,您的进度条现在将显示0到32之间的整数。

这是一个有效的例子:

import javax.swing.JOptionPane;
import javax.swing.SwingWorker;

public class ProgressBarExample {

    public static void main(String[] args) {
        final CustomProgressBar customProgressBar = new CustomProgressBar();
        customProgressBar.setMaximum(32);
        customProgressBar.setStringPainted(true);
        new SwingWorker<Void, Void>() {
            @Override
            protected Void doInBackground() throws Exception {
                int value = 0;
                Thread.sleep(1500);
                while (value < customProgressBar.getMaximum()) {
                    Thread.sleep(250);
                    value ++;
                    customProgressBar.setValue(value);
                }
                return null;
            }
        }.execute();
        JOptionPane.showMessageDialog(null, customProgressBar, "Progress bar example", JOptionPane.PLAIN_MESSAGE);
    }

}