20

我正在使用 jprogressbar 来指示可用性状态。 我想在进度条内显示 40%[assumption] 的文本。怎么做?根据可用性值更改了文本

4

8 回答 8

42

您可以使用:

初始化:

progressBar.setStringPainted(true);

更新:

progressBar.setValue(newValue);
于 2012-08-02T11:36:08.813 回答
4
  • 用于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();
            }
        });
于 2012-08-02T11:55:17.070 回答
3
于 2012-08-02T11:52:01.533 回答
2

这将显示栏内的进度

   progressBar.setStringPainted(true);
于 2012-08-02T11:34:18.720 回答
1

这显示了进度条内的进度百分比

progressBar.setStringPainted(true);
于 2017-10-23T14:05:21.880 回答
0

我不清楚你[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);
}

...因为您将无法依赖仅显示百分比的默认字符串。

于 2012-08-02T11:52:39.760 回答
0

您应该在这里注意两件事。那些是,

1)您必须使用 setStringPainted 方法设置 JProgressBar 的paintString 变量。你可以这样做

jprogressBar.setStringPainted(true)

你必须这样做,因为,

isStringPainted()

如果进度条必须显示其上的值或进度百分比,则方法应返回 true。

2)现在使用您的自定义值进行自定义,使用 jprogressBar 实例设置您的自定义

jprogressBar.setString(customString)

那么它应该可以正常工作。

于 2012-08-02T11:54:45.900 回答
0

这是教程链接,显示如何根据进度条的状态设置值(即 10% 或 40%...)http://docs.oracle.com/javase/tutorial/uiswing/components/progress .html

于 2012-08-02T11:54:51.017 回答