Один из способов сделать это - переопределить 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);
}
}