我正在使用jprogressbar来表示可用性状态。 我想在进度条内显示40%的文本[假设值]。 如何实现?该文本将根据可用性值进行更改。
我正在使用jprogressbar来表示可用性状态。 我想在进度条内显示40%的文本[假设值]。 如何实现?该文本将根据可用性值进行更改。
progressBar.setStringPainted(true);
更新:
progressBar.setValue(newValue);
使用setStringPainted(true)
来显示工作完成的百分比。
使用setValue()
来设置递增值,使用setString()
在完成时显示结束消息...
以下是我的代码示例:
final JProgressBar bar = new JProgressBar(0 , 100); // 0 - min , 100 - max
bar.setStringPainted(true);
panel.add(bar); // panel is a JPanel's Obj reference variable
JButton butt = new JButton("start");
butt.addActionListener(){
public void actionPerformed(){
new Thread(new Runnable(){
public void run(){
int x = 0;
while(x<=100) {
x++;
bar.setValue(x); // Setting incremental values
if (x == 100 ){
bar.setString("Its Done"); // End message
try{
Thread.sleep(200);
}catch(Exception ex){ }
}
}).start();
}
});
我正在使用一个jprogressbar来表示可用性状态。
我想在进度条内显示40%的文本[假设]。
怎么做?文本会根据可用性值而改变。
progressBar.setStringPainted(true);
progressBar.setStringPainted(true);
我不确定你的[assumption]
是否是你想要显示的字符串的一部分。如果是,完整的解决方案应该是这样的:
private static final String PROGRESS_MASK = "%d%% [assumption]";
public void someMethod() {
...
progressBar.addChangeListener(new ChangeListener() {
@Override
void stateChanged(ChangeEvent e) {
progressBar.setString(String.format(PROGRESS_MASK,
progressBar.getValue()));
}
}
progressBar.setStringPainted(true);
}
...因为您无法依赖默认字符串,该字符串仅显示百分比。
这里有两件事情需要注意:
1)您必须使用setStringPainted方法设置JProgressBar的paintString变量。您可以像这样做:
jprogressBar.setStringPainted(true)
你必须这样做,因为
isStringPainted()
方法应该返回true,如果进度条需要在上面显示值或进度的百分比。
2)现在,要使用你自定义的值进行自定义,请使用jprogressBar实例设置你的自定义值。
jprogressBar.setString(customString)
那么它应该正常工作。
这里是教程链接,展示了如何根据进度条的状态设置值(例如10%或40%...)http://docs.oracle.com/javase/tutorial/uiswing/components/progress.html