【问题标题】:JProgress Bar with Values带值的进度条
【发布时间】:2014-04-09 22:31:39
【问题描述】:

如何在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);

这是我的进度条代码。

【问题讨论】:

  • 您说“JProgressBar 中的文本”,但您只是想获得价值,还是想创建一个显示“000/100”的文本字符串?
  • 谁是如何在 JProgressBar 中获取他们的文本的?这听起来像是指另一个问题或答案。没人知道你指的是哪个帖子。但是,请在此处包含对该问题的完整解释,而不仅仅是链接到另一篇文章。问题应该是独立的。

标签: java swing text jlabel jprogressbar


【解决方案1】:

如上所述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”,其中xJProgressBar 的当前值,y 是最大值相同的值。

如果你想在进度条里面画这个,你可能对setString(String s)setStringPainted(boolean b)感兴趣,

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

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

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,我会认为这样简单的事情应该可以完成工作:

    progressBar.setString("Text Here!");
    

    【讨论】:

    • 如果回答了您的问题,请将其标记为已回答,以便其他人在查看您的问题时知道。
    猜你喜欢
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2021-01-28
    • 2023-02-23
    • 2017-07-27
    • 1970-01-01
    相关资源
    最近更新 更多