java制作进度条,Java制作进度条

java制作进度条,Java制作进度条效果图 描述 进度条宽度保持和窗口宽度一致 进度最小值为 0 最大值为 100 每 100 毫秒进度值 1 进度条中间显示进度百分比 代码 packagetest importjava awt importjava awt event importjavax swing publicclassT privateJPane

【效果图】

2c898a1ecd4c9622250e93dacbb6e026.png

【描述】

进度条宽度保持和窗口宽度一致,进度最小值为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();

}

}

【说明】

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221601.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午5:43
下一篇 2026年3月17日 下午5:43


相关推荐

  • Web前端开发技术第三版课后练习答案

    Web前端开发技术第三版课后练习答案P16 第 1 章练习与实验答案练习 11 选择题 1 B 2 D 3 B 4 B 5 D 6 A2 填空题 1 标记 文本 2 TimBerners Lee 蒂姆 伯纳斯 李 3 查看 4 NotePad EditPlus TextPad TopStyle UltraEdit 等 5 超文本标记语言 统一资源定位符 器 层叠样式表 级联样式表 异步 JavaScript 和 XML 6 IE Firefox Chrome opera UCWEB 等 3 简答题见教材

    2026年3月17日
    2
  • pytest的使用_pytest测试框架从入门到精通

    pytest的使用_pytest测试框架从入门到精通Pytest执行用例规则Pytest在命令行中支持多种方式来运行和选择测试用例1.对某个目录下所有的用例pytest2.对模块中进行测试pytesttest_mod.py3.对文件夹进行

    2022年7月28日
    6
  • 小记 HTML5 file对象

    小记 HTML5 file对象

    2021年8月30日
    75
  • socat netcat nc 网络工具/黑客工具「建议收藏」

    socat2016/05/11Chenxin整理socat简介黑客小工具—socatsocat被称为是NC的plus,plus版,号称NC的最强的衍生版本。socat是一款双向数据流通道工具。具有许多强大的功能:端口的连接、端口侦听、收发文件、传递shell、端口转发、端口扫描等官方网站:socatsocat是一个多功能的网络工具,名字来由是”SocketCAT”,可以看作是netcat的N倍加强版,socat的官方网站:socat。Socat是一个两个独立数据通道之间..

    2022年4月17日
    62
  • explan语句说明

    explan语句说明explain 说明 select type SIMPLE 简单的 select 查询 不使用 union 及子查询 table 输出行所引用的表 type 参数说明 const 这是最好的一种情况 const 用于用常数值比较 PRIMARYKEY 和唯一索引 eq reg 这是一种范围查找 一般唯一索引或者范围查找 ref 连接不能基于关

    2026年3月16日
    2
  • LoRaWAN 定位

    LoRaWAN 定位LoRaWAN 介绍 10 定位 众里寻他千百度 蓦然回首 那人却在 灯火阑珊处 青玉案 元夕 nbsp 无论是追踪老人 小孩和宠物 还是查找资产和贵重物品 节点定位是物联网中高附加值的应用 LoRa 宣称 使用 3 个或多个 Gateway 而产生 TDOA TimeDifferen 到达时间差 能实现 不依赖其他设备 定位 本文一起来分析下定位的原理和基于 LoRa 可

    2026年3月26日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号