Java Swing JProgressBar进度条的实现示例

 更新时间:2019年12月09日 11:15:56   作者:xietansheng  
这篇文章主要介绍了Java Swing JProgressBar进度条的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1. 概述

官方JavaDocsApi: javax.swing.JProgressBar

JProgressBar,进度条。

以可视化形式显示某些任务进度的组件。

进度条中心可显示进度百分比的文本表示形式。

当一个任务的进度长度未知时,可将进度条设置为不确定模式。不确定模式的进度条持续地显示动画来表示正进行的操作。当

可以确定任务长度和进度量时,则可设置进度条的最大最小值,以及更新进度条的进度值,将其切换回确定模式。

JProgressBar 常用构造方法:

/**
 * 构造方法中的参数含义:
 *   orient: 进度条的方向,SwingConstants.VERTICAL 或 SwingConstants.HORIZONTAL,默认为水平方向
 *   min: 最小进度值
 *   max: 最大进度值
 */
JProgressBar()

JProgressBar(int orient)

JProgressBar(int min, int max)

JProgressBar(int orient, int min, int max)


JProgressBar 常用方法:

// 设置 最小进度值、最大进度值、当前进度值
void setMinimum(int min)
void setMaximum(int max)
void setValue(int n)

// 获取当前进度值
int getValue()

// 获取当前进度的百分比
double getPercentComplete()

// 是否绘制百分比文本(进度条中间显示的百分数)
void setStringPainted(boolean b)

// 设置进度条进度是否为不确定模式
void setIndeterminate(boolean newValue)

// 设置进度条的方向,SwingConstants.VERTICAL 或 SwingConstants.HORIZONTAL
void setOrientation(int newOrientation)

// 添加进度条的进度改变监听器
void addChangeListener(ChangeListener l)

2. 代码实例

package com.xiets.swing;

import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main {

  private static final int MIN_PROGRESS = 0;
  private static final int MAX_PROGRESS = 100;

  private static int currentProgress = MIN_PROGRESS;

  public static void main(String[] args) {
    JFrame jf = new JFrame("测试窗口");
    jf.setSize(250, 250);
    jf.setLocationRelativeTo(null);
    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    JPanel panel = new JPanel();

    // 创建一个进度条
    final JProgressBar progressBar = new JProgressBar();

    // 设置进度的 最小值 和 最大值
    progressBar.setMinimum(MIN_PROGRESS);
    progressBar.setMaximum(MAX_PROGRESS);

    // 设置当前进度值
    progressBar.setValue(currentProgress);

    // 绘制百分比文本(进度条中间显示的百分数)
    progressBar.setStringPainted(true);

    // 添加进度改变通知
    progressBar.addChangeListener(new ChangeListener() {
      @Override
      public void stateChanged(ChangeEvent e) {
        System.out.println("当前进度值: " + progressBar.getValue() + "; " +
            "进度百分比: " + progressBar.getPercentComplete());
      }
    });

    // 添加到内容面板
    panel.add(progressBar);

    jf.setContentPane(panel);
    jf.setVisible(true);

    // 模拟延时操作进度, 每隔 0.5 秒更新进度
    new Timer(500, new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        currentProgress++;
        if (currentProgress > MAX_PROGRESS) {
          currentProgress = MIN_PROGRESS;
        }
        progressBar.setValue(currentProgress);
      }
    }).start();
  }

}

结果展示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 谨慎使用Java8的默认方法

    谨慎使用Java8的默认方法

    为什么要谨慎使用Java8的默认方法?本文给出了为什么要慎用Java8默认方法的原因,解释的很详细,感兴趣的朋友可以参考一下
    2016-01-01
  • Java微信公众平台开发(3) 接收消息的分类及实体的创建

    Java微信公众平台开发(3) 接收消息的分类及实体的创建

    这篇文章主要为大家详细介绍了Java微信公众平台开发第三步,接收消息的分类及实体的创建,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • java中驼峰与下划线的写法互转

    java中驼峰与下划线的写法互转

    这篇文章主要介绍了java中驼峰与下横线的写法互转方法,文中先是进行了简单的介绍,之后跟大家分享了一个自己编写的工具类的示例代码,有需要的朋友可以参考借鉴,下面来一起学习学习吧。
    2017-01-01
  • 教你用Java Swing做一个定时提醒工具

    教你用Java Swing做一个定时提醒工具

    今天给大家带来的是Java的相关知识,文章围绕着如何用Java做一个定时提醒工具展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Java中验证 Mybatis 数据分片可以减轻GC压力的操作方法

    Java中验证 Mybatis 数据分片可以减轻GC压力的操作方法

    这篇文章主要介绍了Java中验证 Mybatis 数据分片可以减轻GC压力的操作方法,本文使用 Spock(可集成Spring Boot项目) 编写测试用例,基于 Groovy (JVM语言),感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • idea使用带provide修饰依赖导致ClassNotFound

    idea使用带provide修饰依赖导致ClassNotFound

    程序打包到Linux上运行时,若Linux上也有这些依赖,为了在Linux上运行时避免依赖冲突,可以使用provide修饰,本文主要介绍了idea使用带provide修饰依赖导致ClassNotFound,下面就来介绍一下解决方法,感兴趣的可以了解一下
    2024-01-01
  • java中关于命令执行汇总

    java中关于命令执行汇总

    这篇文章主要介绍了java中关于命令执行汇总,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Maven 构建插件的自定义配置方式

    Maven 构建插件的自定义配置方式

    Maven是一个强大的构建工具,支持自定义配置的插件,本文介绍了如何在pom.xml中配置Maven插件,包括基本的插件配置结构、常见插件的自定义配置以及如何控制插件的执行顺序,通过这些配置,开发者可以更灵活地管理项目的构建过程,提高构建效率,感兴趣的朋友一起看看吧
    2025-02-02
  • SpringBoot统一功能处理示例详解(拦截器)

    SpringBoot统一功能处理示例详解(拦截器)

    这篇文章主要介绍了SpringBoot统一功能处理(拦截器),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 如何将字符串、字节数组转为输入流

    如何将字符串、字节数组转为输入流

    这篇文章主要介绍了如何将字符串、字节数组转为输入流问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05

最新评论