进度条程序

2023-11-17

package progressbar;


import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.util.ArrayList;


import javax.swing.JFrame;
import javax.swing.JProgressBar;


public class ProgressBarThread implements Runnable{
 
    private ArrayList<Integer> proList = new ArrayList<Integer>();
    private long progress;//当前进度
    private long totalSize;//总大小
    private boolean run = true;
    private JProgressBar jpb=new JProgressBar();
    JFrame frm=new JFrame();
    public ProgressBarThread(int totalSize){
        this.totalSize = totalSize;
        System.out.println("+++++++++++++++++++++++"+totalSize+"++++++++++++++++++++++++++++++");
        //TODO 创建进度条
        Container contentPane=frm.getContentPane();
        
        jpb.setOrientation(JProgressBar.HORIZONTAL);
        jpb.setMaximum(100);jpb.setMinimum(0);jpb.setValue(0);
        jpb.setStringPainted(true);
        jpb.setPreferredSize(new Dimension(400,50));
        contentPane.add(jpb,BorderLayout.CENTER);
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frm.pack();
        frm.setVisible(true);
    }
     
    /**
     * @param progress 进度
     */
    public void updateProgress(int progress){
    this.progress=progress;
        synchronized (this.proList) {
            if(this.run){
                this.proList.add(progress);
                this.proList.notify();
            }
        }
    }
     
    public void finish(){
        this.run = false;        
        //关闭进度条
    }
     
    @Override
    public void run() {
        synchronized (this.proList) {
            try {
                while (this.run) {
                    if(this.proList.size()==0){
                        this.proList.wait();
                    }
                    synchronized (proList) {
                    long persent=(this.progress*100)/this.totalSize;
                    this.proList.remove(0);
                        //TODO 更新进度条
                    jpb.setValue((int) persent);
                        System.err.println("当前进度:"+persent+"%");
                         
                    }
                }
                System.err.println("下载完成");
                frm.dispose();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

package progressbar;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;


public class testMain {
//2016-12-22下午3:31:17,黄娟
public static void main(String[] args) {
//********进度条程序********//
// try {
//            File file = new File("D:\\书籍\\[Photoshop.CS6完全自学教程].杰诚文化.扫描版.pdf");
//            FileInputStream fis = new FileInputStream(file);
//            FileOutputStream fos = new FileOutputStream("文件保存路径");
//            ProgressBarThread pbt = new ProgressBarThread((int)file.length());//创建进度条
//            new Thread(pbt).start();//开启线程,刷新进度条
//            byte[] buf = new byte[1024];
//            int size = 0;
//            int count =0;
//            while((size = fis.read(buf))>-1){//循环读取
//            count+=size;
//                fos.write(buf, 0, size);
//                pbt.updateProgress(count);//写完一次,更新进度条
//            }
//            //System.out.println("=========================finish");
//            pbt.finish();//文件读取完成,关闭进度条
//            fos.flush();
//            fos.close();
//            fis.close();
//        } catch (FileNotFoundException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//********进度条程序********//
Date date=new Date(2017, 1, 11);
System.out.println(date.hashCode());


        String s1 = "Programming";
        String s2 = new String("Programming");
        String s3 = "Program" + "ming";
        System.out.println(s1 == s2);
        System.out.println(s1 == s3);
        System.out.println(s1 == s1.intern());
        System.out.println(s1.intern());
}


 
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

进度条程序 的相关文章

  • Xshell连接VMware CentOS7

    https blog csdn net weixin 43593086 article details 90247751
  • Android屏幕适配

    一 一些概念的理解 屏幕尺寸 屏幕的对角线 如一台小米电视49寸说的就是电视对角线长度是49寸 1英寸 2 54厘米 分辨率 1920 1080指纵向1920个像素点 横向1080个像素点 1280 720同理 屏幕像素密度 DPI
  • 跟我说回家,却还在外面鬼混,python程序员教你用微信给对方定位

    跟我说回家 却还在外面鬼混 其实很多情侣之间存在很多这样的信任问题 不相信他 去查岗 可能会恶化两人之间的关系 比如跟我说回家了 但是想知道他是否真的回家了 打电话 打视频查岗吗 今天教大家一个利用微信来给对方定位的黑科技 实现方法 其实实
  • python连接clickhouse,并实现对表内数据的增删改查

    基本信息 clickhouse 基本介绍可以参考 https clickhouse com docs zh python 连接 clickhouse 可以参考 https clickhouse com docs en integration
  • 网络 链路层

    数据链路层是计算机网络的底层 主要负责相邻设备之间的数据帧传输 链路层就是负责每一个相邻结点之间的数据传输 但是相邻设备之间也需要描述识别 主要是因为每一个设备都有可能有多个相邻的设备 这种识别在链路层中是通过MAC地址来实现的 MAC地址
  • C++ 类型转换

    文章目录 c语言中的类型转换 为什么C 需要四种类型转换 C 强制类型转换 static cast reinterpret cast const cast dynamic cast c语言中的类型转换 在C语言中 如果赋值运算符左右两侧类型
  • centos7 搭建深度学习环境

    本文引用转载自博客园 经实践可用 对原内容进行了删减调整 后续作者理解更深了 可能更新 一 安装NVIDA组件 1 安装CUDA CUDA又叫cuda toolkit 是NVIDA公司专门开发的一套接口 方便利用GPU做高速计算 主流的深度
  • 将hexo博客搭建在github上

    注册github账号并创建仓库 首先在github上注册账号 填写用户名 email 密码 会有验证通过邮箱发送给你 进行验证 选择仓库 创建一个和你用户名相同的仓库 如 你的 用户名 github io 必须以用户名开头 创建仓库 步骤
  • java8的函数式编程

    1 函数式接口 特定的一类接口 概念 接口里面有且只有一个抽象方法 对于接口里面的默认方法和静态方法不作限制 一般会有 FunctionalInterface修饰 可以没有 FunctionalInterface public interf
  • Redis如何实现布隆过滤器

    本文将介绍布隆过滤器的原理以及Redis如何实现布隆过滤器 应用场景 1 50亿个电话号码 现有10万个电话号码 如何判断这10万个是否已经存在在50亿个之中 可能方案 数据库 set hyperloglog 2 新闻客户端看新闻时 它会不
  • QObject::connect: Cannot queue arguments of type 'string'

    信号槽传递非Qt库类型参数时 出现QObject connect Cannot queue arguments of type string Make sure string is regi 例如以C 标准库中string做参数 则会出现
  • mockjs的基本使用和登录跳转到主页加折叠事件

    目录 1 mockjs 1 1 mockjs介绍 1 2 mockjs使用步骤 1 2 1 安装mockjs依赖 1 2 2 在项目中引入mockjs 1 2 3 创建目录和文件 1 2 4 为每个组件准备模拟数据 1 2 5 测试 1 2
  • 零基础如何学习Java?Java学习路线图

    课程表 笔记 包含知识点 Java 第一天 基础语法 人机交互 Java以及发展史 主要特性 JRE和JDK Java 第二天 Java基础 注释 字面量 变量 数据类型 标识符 键盘录入 Java 第三天 IDEA下载安装 IDEA下载安
  • MySql-MHA-Docker 集群部署搭建

    MySql MHA Docker集群部署搭建 本文概述 机器准备 前置条件 MySQL主从复制集群搭建 1 安装mysql 准备3台机器安装mysql 2 安装配置mysql master 3 安装配置 88 mysql slave 4 安
  • [665]微信之wechat-sender(基于wxpy库)

    注意 wechat sender基于wxpy wxpy基于itchat 目前腾讯以大批量关闭微信网页版接口 所以wechat sender当前已不能使用 以下仅做学习记录 wechat sender 是基于 wxpy 和 tornado 实
  • [软件工程] 实现

    实现 实现 7 1 编码 7 1 1 选择程序设计语言 7 1 2 编码风格 1 程序内部的文档 2 数据说明 3 语句构造 4 输入输出 5 效率 7 2 软件测试基础 7 2 1 软件测试的目标 7 2 2 软件测试准则 1 所有测试都
  • layui table按条件设置背景颜色

    var that this elem next res data forEach function item index if item deleted 1 var tr that find layui table box tbody tr
  • eclipse创建webservice客户端和服务端

    先附上一个webservice的视频教程 链接 https pan baidu com s 1qesv A7cp zYsL7fE5nmFw 提取码 3d6k 创建服务端 提供接口 方式一 创建一个web工程 创建一个ServiceHello

随机推荐

  • 分享一波程序猿专属表情包

    不擅交流 沉默寡言的程序员 只能用表情包在群里大展身手 所以程序员之间的斗图表情包就产生了 每一张表情包都是活生生的影子 下面 是时候展示真正的技术了
  • 设计模式(四) —— 观察者模式/发布订阅模式,c和c++示例代码

    往期地址 设计模式 一 简单工厂模式 设计模式 二 策略模式 设计模式 三 装饰模式 本期主题 使用c和c 代码 讲解观察者模式 发布订阅模式 发布 订阅模式 1 什么是发布 订阅模式 2 实例 2 1 场景 2 2 代码设计 2 3 代码
  • 现代密码学-密码学概论与基本知识

    目录 简介 密码学发展简史 创建 发展阶段 古典密码时期 近代密码时期 现代密码时期 密码主要功能 机密性 完整性 认证性 不可否认性 密码系统的组成 密码分析学 定义 密码攻击类型 针对对称密码体制 针对对称密码体制 常用方法 密码体制的
  • 如何导出论文高清图片

    打开ps 我是ps2021 将论文拖进ps 点击图像 选择想找的图片 左上角文件 导出 导出为 可以选择jpg格式 100 品质导出 得到高清大图
  • iOS 传文件到服务器,ios ftp上传文件到服务器

    ios ftp上传文件到服务器 内容精选 换一换 CDM支持周期性自动将新增文件上传到OBS 不需要写代码 也不需要用户频繁手动上传即可使用OBS的海量存储能力进行文件备份 这里以CDM周期性备份FTP的文件到OBS为例进行介绍 例如 FT
  • 清理电脑运行内存

    清理运行内存 电脑控制面板 管理工具 windows内存诊断 重启电脑 前言 现在好多电脑都只有8G运行内存 在大多数情况下都供给不了我们日常的工作娱乐的需求 简单来说用个ps软件都卡到飞起 这时候很多人就选择加装内存条 但是加装了内存条
  • 数仓体系效率全面提升!同程数科基于 Apache Doris 的数据仓库建设

    应用实践 数仓体系效率全面提升 同程数科基于 Apache Doris 的数据仓库建设 导读 同程数科成立于 2015 年 是同程集团旗下的旅游产业金融服务平台 2020 年 同程数科基于 Apache Doris 丰富的数据接入方式 优异
  • 基于Python的微博舆论分析,微博情感分析可视化系统(V2.0)

    简介 Python基于微博的舆情分析 情感分析可视化系统 微博舆情分析系统 项目后端分爬虫模块 数据分析模块 数据存储模块 业务逻辑模块组成 功能包括 登陆注册 用户管理 热门事件展示 舆情分析 包括舆情分析 情感分类 用户分布 关键词云图
  • 逆向爬虫-sojson混淆反调加密

    文章目录 一 获取sojson代码 二 sojson加密特点和原理 三 过sojson姿势方法 3 1 格式化正则释义 3 2 网页调试过sojson 3 3 静态文件替换过sojson 一 获取sojson代码 JS加密混淆 本次使用代码
  • 阶段性回顾

    阶段笔记 Day01 1 请你简单介绍下软件开发中系统架构的演变 单一应用 gt 垂直拆分 gt 分布式服务 gt 服务治理 SOA gt 微服务架构 2 远程调用的方式有几种 他们的区别如何 如何选择 远程调用有两种方式 RPC Remo
  • 编程每日一题_C程序设计_两整型数据求和

    问题描述 Calculate a b 问题来源https zoj pintia cn problem sets 91827364500 problems Time Limit 2000 ms Memory Limit 65536 KB In
  • HTML5做移动开发一定要搞明白MPA 与 SPA 的差别

    用HTML5做WEB与移动开发一定要搞明白MPA 与 SPA 的差别 刚开始可能会不明白 为什么习惯pc端web app开发 会发现Sencha Touch这样的框架 用起来有点别扭 老在想那熟悉的多页面开发方式 却总也找不到实现的接口 也
  • Mac系统下Flutter安装教程

    一 下载Flutter 1 第一种方式git repo方式 执行下列命令下载最新的flutter代码 系统请先安装Git git clone b beta https github com flutter flutter git 2 第二种
  • 如何解决:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

    如何解决 ConnectionRefusedError WinError 10061 由于目标计算机积极拒绝 无法连接 在阅读 Python编程 从入门到实践 17 1 6时遇到了这个问题 项目场景 import requests url
  • spyglass使用教程

    spyglass使用教程 ic 爱好者的博客 CSDN博客
  • vivo手机计算机恢复出厂设置,vivo手机系统恢复出厂设置里面清除所有数据

    哎呀 手机怎么又卡了 完了这局农药又要输了 这个破手机 才用了一年就卡的不要不要的了 是时候要通过恢复出厂设置来解决了 但它真的能让我们的手机变流畅吗 什么是恢复出厂设置 顾名思义 恢复出厂设置就是将手机里所有的设置还原到最开始时的状态 就
  • [网络安全自学篇] 三.Burp Suite安装配置、Proxy基础用法及流量分析示例

    最近开始学习网络安全相关知识 接触了好多新术语 感觉自己要学习的东西太多 真是学无止境 也发现了好几个默默无闻写着博客 做着开源的大神 接下来系统分享一些网络安全的自学笔记 希望读者们喜欢 上一篇文章分享了Chrome浏览器保留密码功能渗透
  • vue的transition动画条上下跳动

    vue部分
  • Dynamics 365 DevOps CI/CD之ConfigurationData

    ConfigurationData如省市区 门店地址这种业务类型的数据 还有系统自定义过程中配置或开发涉及的参数 需要在系统间进行同步 此处CI用到了Power Platform Tool这个工具 这个也是可以在Azure DevOps的商
  • 进度条程序

    package progressbar import java awt BorderLayout import java awt Container import java awt Dimension import java util Ar