Как отобразить число без знака% в JProgressBar Java? - PullRequest
1 голос
/ 15 декабря 2011

Когда я использую JProgressBar, я хочу, чтобы он отображал число от 0 до 32, а не проценты, поэтому, прежде чем он запустится, он покажет 0, после того, как я нажму кнопку пуска, он покажет 1, 2, 3 .. 32

Как это сделать?

1 Ответ

0 голосов
/ 05 августа 2013

Один из способов сделать это - переопределить getString() метод JProgressBar:

public class CustomProgressBar extends javax.swing.JProgressBar {

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

}

Предполагая, что вы установили минимальное и максимальное значения соответственно 0 и 32 и значения прогресса с помощью метода setValue(), индикатор выполнения теперь будет отображать целые числа от 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);
    }

}
...