如何在 jprogressbar 上添加文本?

Posted

技术标签:

【中文标题】如何在 jprogressbar 上添加文本?【英文标题】:How to add text on jprogressbar? 【发布时间】:2012-07-31 08:49:48 【问题描述】:

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

【问题讨论】:

【参考方案1】:

你可以使用:

初始化:

progressBar.setStringPainted(true);

更新:

progressBar.setValue(newValue);

【讨论】:

不需要这一行:progressBar.setString(newValue + "%"); setString 行对于想要显示百分比以外的内容的人可能会有所帮助。它帮助了我:)【参考方案2】:

使用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();
            
        );

【讨论】:

SwingWorker 更好、更舒适、更简单【参考方案3】:

我正在使用 jprogressbar 来指示可用性状态。

请阅读tutorial about JProgressBar

我想在进度条内显示 40%[假设] 的文本。

JProgressBar 教程中的Using Determinate Progress Bars

怎么做?根据可用性值更改了文本

更多内容请关注SwingWorker tutorial

【讨论】:

【参考方案4】:

这将显示栏内的进度

   progressBar.setStringPainted(true);

【讨论】:

【参考方案5】:

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

progressBar.setStringPainted(true);

【讨论】:

【参考方案6】:

我不清楚您的[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);

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

【讨论】:

【参考方案7】:

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

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

jprogressBar.setStringPainted(true)

你必须这样做,因为,

isStringPainted()

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

2) 现在使用您的自定义值进行自定义,使用

在 jprogressBar 实例上设置您的自定义

jprogressBar.setString(customString)

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

【讨论】:

【参考方案8】:

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

【讨论】:

以上是关于如何在 jprogressbar 上添加文本?的主要内容,如果未能解决你的问题,请参考以下文章

JTable的TableColumn添加多个JProgressBar

Pr如何在视频中插入文本?

如何将 JProgressBar 设置为音频文件的持续时间?

如何将JProgressbar绑定到Bean类的属性

Java - 如何将 JProgressBar 与 SwingWorker 一起使用

pr17版怎么加字幕