我正在使用 jprogressbar 来指示可用性状态。 我想在进度条内显示 40%[assumption] 的文本。怎么做?根据可用性值更改了文本
8 回答
您可以使用:
初始化:
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%[假设] 的文本。
在 JProgressBar 教程中使用确定进度条
怎么做?根据可用性值更改了文本
SwingWorker 教程中的更多内容
这将显示栏内的进度
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