Java制作进度条

article/2025/11/3 15:38:20

【效果图】

【描述】

进度条宽度保持和窗口宽度一致,进度最小值为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() {@Overridepublic void componentResized(ComponentEvent e) {int width = getWidth();// System.out.println("componentResized...width=" + width);progressBar.setPreferredSize(getNewDimension());}});// 监听窗口最大化和还原,设置进度条宽度为窗口宽度this.addWindowStateListener(new WindowAdapter() {@Overridepublic 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毫秒进度值+1timer = new Timer(100, new AbstractAction() {@Overridepublic 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();}
}

【说明】

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


http://chatgpt.dhexx.cn/article/2YpagNNn.shtml

相关文章

QT:QGraphicsScene与QGraphicsView使用render()函数渲染图片

render()函数看官方文档&#xff0c;会有很多不懂得地方&#xff0c;以下为实践出来的效果。 当我们想要用QPaint() 绘制我们在QGraphicsView看到的部分时&#xff0c;不仅要绘制正确的图片大小&#xff0c;还需要使用 render() 渲染正确的大小。当我们只想要绘制坐标系中矩形…

Qt图形特效:QGraphicsOpacityEffect

一、描述 不透明度效果使源具有不透明度。该效果对于使源半透明非常有用&#xff0c;类似于淡入/淡出序列。可以使用setOpacity()函数修改不透明度。 二、属性成员 1、opacity : qreal。此属性保存不透明度。该值应在0.0到1.0的范围内&#xff0c;其中0.0是完全透明的&#…

图形视图(02):【类】QGraphicsScene [官翻]

文章目录 详述事件处理和传播 公共类型enum ItemIndexMethodenum SceneLayer 属性backgroundBrush: QBrushbspTreeDepth: intfocusOnTouch: boolfont: QFontforegroundBrush: QBrushitemIndexMethod: ItemIndexMethodminimumRenderSize: qrealpalette: QPalette**sceneRect**: …

Qt中使用QGraphicsScene重写drawBackGround绘制背景

Qt中使用QGraphicsScene重写drawBackGround绘制背景 需求解释 我是想这学习Qt的界面设计&#xff0c;希望能够对界面背景进行优化然后使用Qt的界面与图形画背景网格。首先查资料 通过查找博客发现很简单&#xff0c;就是新建一个类继承于QGraphicsScene&#xff0c;于是我就…

图形视图框架QGraphicsScene(场景,概念)

QGraphicsScene 该类充当 QGraphicsItems 的容器。它与 QGraphicsView 一起使用&#xff0c;用于在 2D 表面上可视化图形项目&#xff0c;例如线条、矩形、文本甚至自定义项目。 QGraphicsScene具有的功能&#xff1a; 提供用管理大量数据项的高速接口传播事件到每一个图形项…

qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

应大家的要求&#xff0c;还是把完整的工程文件贴出来&#xff0c;大家省点事&#xff1a;http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看运行效果&#xff0c;我用的群创7寸屏&#xff0c;主机是mini2440&#xff0c;分辨率是800*480&#xff0c;程序写比较粗糙…

Qt QGraphicsScene、QGraphicsView类实现仪表盘

Qt QGraphicsScene、QGraphicsView类实现仪表盘 【1】UI界面设计【2】效果【3】QGraphicsScene简介【4】QGraphicsEllipseItem简介【5】QGraphicsPolygonItem简介【6】QGraphicsLineItem简介【7】QGraphicsView简介【8】仪表源码头文件源码 【1】UI界面设计 【2】效果 【3】QGr…

qt QGraphicsScene 简单例子

坐标 graphicsView是Widget这个界面的子控件&#xff0c; 他的位置是左上角坐标为&#xff08;30,30&#xff09; 他的宽度为431&#xff0c;高度为431. 如果在graphicsView 这个子控件中&#xff0c; 继续加入 子控件A&#xff0c;由于graphicsView比较特殊。 根据它的align…

QGraphicsScene设置SceneRect

简要说明 QGraphicsScene场景区域&#xff0c;可在构造QGraphicsScene对象时设定&#xff0c;也可通过函数setSceneRect设定。QGraphicsScene场景区域中坐标原点的位置&#xff0c;会影响到图形项的坐标设定&#xff0c;进而影响图形项在场景中的显示位置。以将图片显示在中心…

QT QGraphicsScene / QGraphicsView中 sceneRect 使用详细说明

接触QT不久&#xff0c;发现QT的Graphics View框架坐标使用和平常不一样&#xff0c;尤其sceneRect的作用。 官方文档关于这部分介绍真是蛋疼&#xff0c;网上说的也寥寥。没法自己研究了一下&#xff0c;其实这块内容QT设计的很方便&#xff0c;只是文档讲解的太烂&#xff0c…

【QT】GraphicsView、QGraphicsScene、QGraphicsEllipseItem的使用

GraphicsView、QGraphicsScene、QGraphicsEllipseItem的使用 前言实验目的重构GraphicsView类新建GraphicsView、QGraphicsScene层绘制Item图形控件绘制圆形绘制矩形绘制三角形绘制文字绘制直线 组合、打散、前置和后置组合打散控件前置控件后置 绑定功能事件总结 前言 对于绘…

Qt 绘图之QGraphicsScene QGraphicsView QGraphicsItem详解

Graphics View提供了一个界面&#xff0c;它既可以管理大数量的定制2D graphical items&#xff0c;又可与它们交互&#xff0c;有一个view widget可以把这些项绘制出来&#xff0c;并支持旋转与缩放。这个柜架也包含一个事件传播结构&#xff0c;对于在scene中的这些items,它具…

PyQt5:QGraphicsScene入门一:基本介绍、场景定义、添加元素

为什么80%的码农都做不了架构师?>>> 简介说明: 这个QGraphicsScene类用于在场景中操作大量的2D图形元素,这个类是作为一个容器QGraphicsItems存在的,它是连同QGraphicsView用于可视化的二维表面的图形项目,如直线,矩形,文本,甚至定制物品;还可以有效地…

QGraphicsView,QGraphicsScene和QGraphicsItem

图形视图框架提供了一个基于图形项的模型视图编程方法&#xff0c;主要由场景、视图和图形项三部分组成&#xff0c;这三部分分别由QGraphicsScene、QGraphicsView和QGraphicsItem这三个类来表示。 场景QGraphicsScene QGraphicsScene类提供绘图场景&#xff08;Scene&#…

Qt图形视图框架:QGraphicsScene详解

一、描述 1、场景提供了一个用于管理大量2D图形项的平面。该类充当图形项的容器。 它与视图一起用于可视化2D曲面上的图形图形项。 2、场景没有自己的视觉外观&#xff0c;只负责管理图形项。 3、场景的最大优势之一就是其快速有效地定位图形项的能力。即使场景中有数百万个…

Qt开发技术:图形视图框架(二)场景QGraphicsScene、QGraphicsItem与QGraphicsView详解

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/117660217 长期持续带来更多项目与技术分享&#xff0c;咨询请加QQ:21497936、微信&#xff1a;yangsir198808 红胖子(红模仿)的博文大全&#xff1…

TLS、SSL原理解析

TLS、SSL https协议就是建立在TLS、SSL之上的。

SSL证书原理讲解

SSL证书原理讲解 - 2240930501 - 博客园一直以来都对数字证书的签发&#xff0c;以及信任等事情一知半解。总算有个闲适的周末来总结和深入一下相关的知识。 CA: CA(Certificate Authority)是证书的签发机构&#xff0c;它是负责管理和签发证书的https://www.cnblogs.com/dingl…

浅谈SSL/TLS工作原理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 浅谈SSL/TLS工作原理 SSL对称加密非对称加密定义工作过程特点及性能分析非对称加密常用算法举例 非对称加密和对称加密各自有啥优缺点&#xff1f;CA&#xff08;Certificate…

SSL工作原理介绍以及java实现

SSL工作原理介绍以及java实现 目录 SSL工作原理介绍以及java实现 SSL简介SSL工作原理 握手协议Handshake protocol 1握手阶段使用RSA加密算法2握手阶段使用Diffie-Hellman加密算法记录协议Record protocol警报协议Alert protocolWireshark抓包图解java实现Secure Sockets Laye…