【效果图】

【描述】

进度条宽度保持和窗口宽度一致,进度最小值为0,最大值为100,每100毫秒进度值+1,进度条中间显示进度百分比

【代码】

package test;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Test extends JFrame {

private JPanel panel;

private JProgressBar progressBar;

private int value = 0;

private static final int PROGRESS_MIN_VALUE = 0;

private static final int PROGRESS_MAX_VALUE = 100;

private static final int PROGRESS_HEIGHT = 20;

private Timer timer;

public Test() {

this.setBounds(10, 10, 300, 80);

// this.setExtendedState(JFrame.MAXIMIZED_BOTH); // 最大化

// this.setLocationRelativeTo(null);// 使窗口显示在屏幕中央

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

panel = new JPanel();

// panel.setBackground(new Color(228, 209, 168));

progressBar = new JProgressBar();

progressBar.setMaximum(PROGRESS_MAX_VALUE);

progressBar.setMinimum(PROGRESS_MIN_VALUE);

progressBar.setValue(value);

progressBar.setPreferredSize(getNewDimension());

// 监听窗口大小,设置进度条宽度为窗口宽度(但是对于最大化和还原窗口无效,原因未知)

this.addComponentListener(new ComponentAdapter() {

@Override

public void componentResized(ComponentEvent e) {

int width = getWidth();

// System.out.println("componentResized...width=" + width);

progressBar.setPreferredSize(getNewDimension());

}

});

// 监听窗口最大化和还原,设置进度条宽度为窗口宽度

this.addWindowStateListener(new WindowAdapter() {

@Override

public void windowStateChanged(WindowEvent state) {

if (state.getNewState() == 1 || state.getNewState() == 7) {

// System.out.println("窗口最小化");

} else if (state.getNewState() == 0) {

// System.out.println("窗口恢复到初始状态");

progressBar.setPreferredSize(getNewDimension());

} else if (state.getNewState() == 6) {

// System.out.println("窗口最大化");

progressBar.setPreferredSize(getNewDimension());

}

}

});

// 设置进度条中间显示进度百分比

progressBar.setStringPainted(true);

// 进度条进度的颜色

progressBar.setForeground(new Color(46, 145, 228));

// 进度条背景的颜色

progressBar.setBackground(new Color(220, 220, 220));

panel.add(progressBar);

this.add(panel);

// 定时器,每100毫秒进度值+1

timer = new Timer(100, new AbstractAction() {

@Override

public void actionPerformed(ActionEvent e) {

if (value >= PROGRESS_MAX_VALUE) {

// 结束定时器

timer.stop();

// System.out.println("------------value=" + value);

} else {

// 设置进度值

value++;

progressBar.setValue(value);

// System.out.println("actionPerformed...value=" + value);

}

}

});

timer.start();

this.setVisible(true);

}

public Dimension getNewDimension() {

return new Dimension(this.getWidth(), PROGRESS_HEIGHT);

}

public static void main(String[] args) {

new Test();

}

}

【说明】

上诉代码保留了之前测试的一些代码,已注释。

java制作进度条,Java制作进度条相关推荐

  1. Java渐变进度条_Android ProgressBar自定义图片进度,自定义渐变色进度条

    java.lang.Object ↳android.view.View ↳android.widget.ProgressBar 直接子类 AbsSeekBar 间接子类 RatingBar, Seek ...

  2. java 进度条jsp,jsp进度条_jsp技巧

    开始页面:start.jsp 状态页面:status.jsp JSP进度条 setTimeout("location=status.jsp", 1000); JSP进度条 结果: ...

  3. 组态王怎么做进度条_3分钟学会超实用||进度条amp;游戏血条的制作方法!

    最近有很多小伙伴盯上了我们一看就会的进度条和血条效果,问是怎么做的,像这种进度条一般放置于视频正片底部,用来做章节内容提示,喵酱今天就来给大家解密一下这些效果的制作方法. (视频教程在文末) 文字教程 ...

  4. 进度条线程怎么用java,多线程 进度条 java

    场景:java设计形式(2)-观察者模式Swing 多线程事件处理进度条和Observer的一个具体应用 java设计模式(2)--观察者模式Swing 多线程事件处理进度条和Observer的一个具 ...

  5. Java 代码实现一个标准输出的进度条,知识点你知道但并不一定会用

    最近阿粉在折腾一台服务器,折腾的过程中往往会需要安装很多依赖软件,有的是在官网下载压缩包,有的是通过系统命令直接安装,在通过系统命令直接安装的时候,就会有类似下面的进度条出现. 进度条在我们日常使用的 ...

  6. python进度条设计函数_Python进度条的制作代码实例

    这篇文章主要介绍了Python进度条的制作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 import sys,time #导入模块 for ...

  7. python制作进度条显示_Python进度条的制作代码实例

    这篇文章主要介绍了Python进度条的制作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 import sys,time #导入模块 for ...

  8. Java文件下载,HTML进度条实时刷新进度

    效果展示 实现原理 1:后台同步进程开始下载文件 2:前台使用遮罩效果,使页面不能点击,使用circliful进度条插件(插件源码见后) 3:页面使用JavaScript定时器发送ajax请求刷新进度 ...

  9. java 进度条_进度条Java

    你必须使用线程.设计一个实现Runnable接口的类,它将更新这样的值. class ProgressBarUpdator implements java.lang.Runnable { /** * ...

  10. java 内存_java节省内存的几条建议

    java节省内存的几条建议 引导语:Java的主要工作是通过编程语言来制作互联网页面.制作动态效果以及网站等技术,以下是小编整理的java节省内存的几条建议,欢迎参考阅读! 1. 尽量在合适的场合使用 ...

最新文章

  1. python比较两个xml_python比较2个xml内容的方法
  2. 让英文版windows 8支持非Unicode程序的语言方法
  3. Android: how to resolve Application’s parameter NullPointerException
  4. 网络设备主备配置系列3:华为防火墙(路由模式)
  5. 以太坊搭建,不能使用puppeth 创建初始块,报错Fatal: Failed to write genesis block: unsupported fork ordering: eip15
  6. Payment Terms 付款条件
  7. adb logcat 保存_adb命令——日志命令详解——全部输出到桌面: adb logcat c:\users\del\desktop\log.txt...
  8. 计算数值二进制表达式中1的个数
  9. Hadoop概念学习系列之Hadoop 生态系统
  10. 事件绑定中的this问题
  11. 【机器学习课程笔记(吴恩达)】1.3 监督学习
  12. android自定义push通知_20个海外Web和App推送通知服务工具
  13. 7445 oracle,Oracle 10g impdp 报 ORA-7445 [_INTEL_FAST_MEMCPY.A] 解决方法
  14. bootstrap 中这段代码 使bundles 失败
  15. 关于Restful Web Service的一些理解
  16. 酒店三合一终端服务器,【MOXA NPort6650-8八口三合一信号安全终端服务器价格_MOXA NPort6650-8八口三合一信号安全终端服务器厂家】- 网络114...
  17. 建立企业内部maven服务器并使用Android Studio发布公共项目
  18. 安卓案例:利用帧动画动态显示时间
  19. 远程连接linux的mysql_【Linux开启mysql远程连接的设置步骤】 mysql开启远程连接
  20. hive on tez踩坑记1-hive0.13 on tez

热门文章

  1. postgresql 优势
  2. 降价用计算机数组公式,数组公式
  3. 网络设备自动巡检工具(五)——由自动巡检引发的遐想【2020-10-30】
  4. ABAP SPLITTER技术总结及使用技巧
  5. 大数据量点的地图展示,借助PostGIS实现动态点抽稀/聚合效果
  6. hive分隔符_Hive表字段、行、map默认分隔符
  7. 福莫特罗行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  8. proteus8.9仿真闪退怎么解决?如何找到ProgramData?
  9. android下拉水波纹,android自定义WaveView水波纹控件
  10. MAC m1 node vue ui 编译项目时报错:node_modules/.bin/vue-cli-service: Permission denied 解决