JAVA SWING 实现模拟进度条效果

package zikao.swing;

import javax.swing.*;
import java.awt.*;

public class JProgressBarTest {
    /*
    JProgressBar使用的步骤:

    1,创建JProgressBar的对象

    public JProgressBar(int orient,int min,int max):

    orient: 方向  min: 最小值 max: 最大值

    2,设置属性

    setBorderPainted(boolean b): 设置进度条是否有边框

    setIndeterminate(boolean newValue): 设置该进度条是不是进度不确定的精度条

    setStringPainted(boolean b): 设置进度条是否显示当前完成百分比

    3,获取和设置当前进度条的进度状况

    setValue(int n): 设置当前进度值

    double getPercentComplete(): 获取进度条的完成百分比

    String getString(): 返回进度字符串的当前值
     */
    JFrame jFrame = new JFrame("JProgressBar测试");
    JProgressBar bar = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100);
    JCheckBox indeterminate = new JCheckBox("不确定进度");
    JCheckBox noBorder = new JCheckBox("不绘制边框");

    public void init() {
        //处理复选框的点击行为
        indeterminate.addActionListener(e -> {
            //获取indeterminate有没有被选中
            boolean selected = indeterminate.isSelected();
            //设置当前进度条不确定进度
            bar.setIndeterminate(selected);
            bar.setStringPainted(!selected);
        });
        noBorder.addActionListener(e -> {
            boolean selected = noBorder.isSelected();
            bar.setBorderPainted(!selected);
        });
        Box vBox = Box.createVerticalBox();
        vBox.add(indeterminate);
        vBox.add(noBorder);

        //设置进度条的默认属性

        bar.setStringPainted(true);
        bar.setBorderPainted(true);

        //把当前窗口的布局方式改为FlowLayout
        jFrame.setLayout(new FlowLayout());
        jFrame.add(vBox);
        jFrame.add(bar);

        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame.pack();
        jFrame.setVisible(true);

        //TODO 通过循环模拟修改进度条的进度
        for (int i = 0; i <= 100; i++) {
            bar.setValue(i);
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        new JProgressBarTest().init();
    }
}

                                                                效果请看评论区B站链接

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java实现进度条的开发过程一般分为以下几个步骤: 1. 创建进度条组件:使用JProgressBar类创建进度条组件,并设置进度条的最小值、最大值和初始值; 2. 设置进度条样式:可以通过setUI()方法来设置进度条的UI样式,也可以使用L&F来设置进度条的样式; 3. 更新进度条数值:通过setValue()方法来更新进度条的数值,可以在需要更新进度条数值的地方调用该方法; 4. 监听进度条数值变化:可以通过addChangeListener()方法来添加监听器,实时监听进度条数值的变化,以便在进度条数值发生变化时做出相应的处理。 下面是一个简单的Java实现进度条的示例代码: ```java import javax.swing.*; import java.awt.*; public class ProgressBarDemo extends JFrame { private JProgressBar progressBar; // 进度条组件 public ProgressBarDemo() { setTitle("进度条示例"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 100); setLocationRelativeTo(null); // 创建进度条组件,设置最小值、最大值和初始值 progressBar = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100); progressBar.setValue(0); // 将进度条组件添加到窗口中 Container contentPane = getContentPane(); contentPane.add(progressBar, BorderLayout.CENTER); // 模拟进度条更新 for (int i = 0; i <= 100; i++) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } progressBar.setValue(i); } } public static void main(String[] args) { new ProgressBarDemo().setVisible(true); } } ``` 在上面的示例代码中,我们创建了一个ProgressBarDemo类,该类继承自JFrame类,实现了一个简单的进度条示例。在构造函数中,我们创建了一个进度条组件,并设置了最小值、最大值和初始值,然后将进度条组件添加到窗口中。在模拟进度条更新的过程中,我们使用了Thread.sleep()方法来模拟耗时操作,每隔100毫秒更新一次进度条的数值。最终,我们可以看到一个进度条在窗口中不断更新,直到达到100%的进度。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值