如何在JProgressBar中显示文本?即“ 000/100”

progPanel.setBorder(BorderFactory. createEmptyBorder(10,10,10,10));
timerBar = new JProgressBar(0,100);
timerBar.setOrientation(JProgressBar.VERTICAL);
timerBarLabel = new JLabel("Play");
timerBarLabel.setForeground(Color.white);
progPanel.add(timerBarLabel);
progPanel.add(timerBar);


这是我的进度条代码。

最佳答案

the documentation for JProgressBar所述(假设您使用的是Java 6),可以使用getValue()方法从BoundedRangeModel检索进度条的当前值。

所以,

int maximum = timerBar.getMaximum();
int value = timerBar.getValue(); // This will be the value from 0 to 100 inclusive
String text = String.format("%d/%d", value, maximum);


上面的结果将导致text包含字符串“ x / y”,其中x是JProgressBar的当前值,而y是该值的最大值。

如果您想在进度栏中绘制它,您可能会对setString(String s)setStringPainted(boolean b)感兴趣,

timerBar.setStringPainted(true);
timerBar.setString(text);


并且由于进度条的值将更改,因此您将需要在每次更改值时更新文本。

09-11 16:18