如何在Java的JProgressBar中显示不带%符号的数字?

发布于 2024-12-21 06:48:33 字数 115 浏览 2 评论 0原文

当我使用 JProgressBar 时,我希望它显示从 0 到 32 的数字,而不是百分比,所以在它开始之前,它会显示 0,在我单击开始按钮后,它会显示 1 , 2 , 3 ... 32

如何要做吗?

When I use JProgressBar, I want it to display a number from 0 to 32, not a percent, so before it starts, it will show 0, after I click start button, it will show 1 , 2 , 3 ... 32

How to do it ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清旖 2024-12-28 06:48:33

一种方法是重写 getString() 方法JProgressBar

public class CustomProgressBar extends javax.swing.JProgressBar {

    @Override
    public String getString() {
        return getValue() + "";
    }

}

假设您将最小值和最大值分别设置为 0 和 32,并使用 setValue() 方法设置进度值,您的进度条现在将显示 0 到 32 之间的整数。

这是一个工作示例:

import javax.swing.JOptionPane;
import javax.swing.SwingWorker;

public class ProgressBarExample {

    public static void main(String[] args) {
        final CustomProgressBar customProgressBar = new CustomProgressBar();
        customProgressBar.setMaximum(32);
        customProgressBar.setStringPainted(true);
        new SwingWorker<Void, Void>() {
            @Override
            protected Void doInBackground() throws Exception {
                int value = 0;
                Thread.sleep(1500);
                while (value < customProgressBar.getMaximum()) {
                    Thread.sleep(250);
                    value ++;
                    customProgressBar.setValue(value);
                }
                return null;
            }
        }.execute();
        JOptionPane.showMessageDialog(null, customProgressBar, "Progress bar example", JOptionPane.PLAIN_MESSAGE);
    }

}

One way to do it is by overriding the getString() method of JProgressBar:

public class CustomProgressBar extends javax.swing.JProgressBar {

    @Override
    public String getString() {
        return getValue() + "";
    }

}

Assuming you set the min and max values to 0 and 32 respectively, and the progress values using the setValue() method, your progress bar will now show integers from 0 to 32.

And here is a working example:

import javax.swing.JOptionPane;
import javax.swing.SwingWorker;

public class ProgressBarExample {

    public static void main(String[] args) {
        final CustomProgressBar customProgressBar = new CustomProgressBar();
        customProgressBar.setMaximum(32);
        customProgressBar.setStringPainted(true);
        new SwingWorker<Void, Void>() {
            @Override
            protected Void doInBackground() throws Exception {
                int value = 0;
                Thread.sleep(1500);
                while (value < customProgressBar.getMaximum()) {
                    Thread.sleep(250);
                    value ++;
                    customProgressBar.setValue(value);
                }
                return null;
            }
        }.execute();
        JOptionPane.showMessageDialog(null, customProgressBar, "Progress bar example", JOptionPane.PLAIN_MESSAGE);
    }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文