import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Downloader{JFrame frame;JPanel center;JLabel lab,pic;JTextField jtf;JProgressBar jpb;JButton but;Font font = new Font("宋体",1,20);public Downloader(){frame = new JFrame("资源下载小工具 v1.0");lab = new JLabel("请输入资源地址:");jtf = new JTextField(20);but = new JButton("开始下载");jpb = new JProgressBar();jpb.setStringPainted(true);pic = new JLabel(new ImageIcon("1.jpg"));but.addActionListener(new DownListener());lab.setFont(font);jtf.setFont(font);but.setFont(font);jpb.setFont(font);JPanel top = new JPanel();top.add(lab);top.add(jtf);top.add(but);top.add(jpb);center = new JPanel(new BorderLayout());center.add(pic);frame.add(top,"North");frame.add(center);top.setBackground(Color.WHITE);center.setBackground(Color.WHITE);frame.setSize(800,600);frame.setVisible(true);frame.setDefaultCloseOperation(3);}public static void main(String[] args){new Downloader();}class DownListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent ae){DownloadThread dt = new DownloadThread();dt.start();}}class DownloadThread extends Thread{@Overridepublic void run(){try{String str = jtf.getText();String fileName = str.substring(str.lastIndexOf("/") +1);URL url = new URL(str);URLConnection uc = url.openConnection();int total = uc.getContentLength();int current = 0;int lastPercent = -1;InputStream is = uc.getInputStream();FileOutputStream fos = new FileOutputStream(fileName);byte[] data = new byte[5<<20];int len;while((len = is.read(data)) != -1){fos.write(data,0,len);if(current == 0){center.removeAll();center.add(new JLabel(new ImageIcon("2.gif")));center.updateUI();}current += len;int percent = (int)(current*100L/total);if(percent != lastPercent){jpb.setValue(percent);lastPercent = percent;}}is.close();fos.close();if(current == total){JOptionPane.showMessageDialog(frame,fileName + "已经下载完成!");center.removeAll();center.add(new JLabel(new ImageIcon("3.jpg")));center.updateUI();}}catch(Exception e){e.printStackTrace();}}}
}

java基础实现简单的资源下载小工具相关推荐

  1. 星宿UI源码V1.3 wordpress系统资讯资源下载小程序源码开源下载

    更新内容: 新增:金刚区支持跳转业务域名(个人小程序不支持) 新增:wordpress后台公众号文章(焦点)开关 新增:资源下载提取密码 新增:支持wordpress文章中添加小程序流量主AD,图组 ...

  2. 用Java来实现区块链原理并简单模拟开发一个小工具

    前几天心血来潮,用Java模拟实现了一个区块链小工具,该工具是单机版的,没有实现联网功能,属于是单节点的工具,但是对于区块链的核心wk逻辑功能都实现了,如:wk.钱包.转账.记账等功能.界面实现用到了 ...

  3. 1.Electron-封装地图瓦片下载小工具(MapDownload) [配置开发环境]

    本软件完成状况 未完成~~ 目的 之前写了一个地图瓦片下载小工具 地图地图瓦片下载器(有兴趣可以去看看)由于是"黑框"版本的.想把它封装成界面版本.接下来我会用一段时间把我学习El ...

  4. 无聊的时候怎么办?教你用java写一个简单挂机打金币小游戏吧!

    无聊的时候怎么办?教你用java写一个超简单挂机打金币小游戏吧! Java写一个挂机打金币程序 1.Java的面向对象 2.基础打金的分析 3. Robot介绍以及Demo演示 4.挂机打金程序如何去 ...

  5. java 雷霆战机 教程,java swing实现简单的雷霆战机小游戏项目源码附带视频指导修改教程...

    <p> <span style="font-family:微软雅黑;font-size:19px;color:#666666;background-color:#FFFFF ...

  6. Java网络编程之实现资源下载详解【王道Java】

    文章目录 一,前言 二,实现资源下载 三,资源下载的客户端 四,资源下载的服务器端 五,附源码: 5.1,资源下载的客户端 5,2 ,资源下载的服务器端 六,最后 一,前言 有一个作业需求,如下: 实 ...

  7. java基础笔记简单回忆

    0. 自述     自从大学毕业后开始做java开发有几年了,但是都是用现在比较流行的一些框架蒙头写业务代码,总有一种自己水平不行的感觉故而决定重新开始 在将java基础视频(待我看完后在分享视频网盘 ...

  8. 硬核干货合集!500+篇Java干货技术文章整理|资源|书单|工具|面试指南|强烈建议打开!

    今天给大家推荐一位在阿里做Java的朋友给大家,他是公众号[程序员书单]的作者黄小斜. 他的公众号[程序员书单]这两年来累积了200多篇优质原创文章,独家原创的系列文章有<五分钟学编程>系 ...

  9. 简单实用远控小工具Todesk

    前言 之前写过anydesk远控,然后在一次测试中,在客户那边看到一个远控软件–Todesk,然后就去官网下载下来研究了一下. 准备工作 在开始测试之前先查看官方文档. 支持静默安装 可设置安全密码 ...

最新文章

  1. 干货 | YOLOV5 训练自动驾驶数据集,并转Tensorrt,收藏!
  2. hbase设计方案1
  3. linux基础命令学习
  4. CSS:超出部分省略号
  5. linux的ping工具,用linux下的tcping工具测试已禁ping服务器延迟
  6. 【MATLAB统计分析与应用100例】案例003:matlab调用smooth函数进行加噪数据的平滑处理
  7. C++ 继承关系图 01
  8. java phantomjs 截图_phantomjs 截图
  9. Android:Android NDK项目中C++文件中打印日志
  10. devstack mysql_devstack 安装openstack newton版
  11. C#泛型-小心使用静态成员变量
  12. 如何使用AxureShare+Axure RP 8.0创建团队项目,实现团队协同
  13. matlab-模拟退火算法
  14. 伦敦城市级MaaS出行服务可行性研究
  15. 运维工程师种种尴尬的瞬间情景,你有无?
  16. JavaScript使用手册、范例
  17. 金叉和死叉看哪几条线?股票macd金叉和死叉怎么看?
  18. VulnHub靶场系列:Flick
  19. 微信小程序学习和实践总结
  20. secureCRT 中文破解版

热门文章

  1. 操作系统_处理机调度
  2. 2020年4月份所有文章汇总
  3. 应用系统部署注意事项
  4. flutter 隐藏appbar_Flutter 滚动时隐藏AppBar
  5. Perl: Bless略解 z
  6. 6、插充电器识别过程
  7. github上docker镜像创建容器
  8. ThinkPhp使用PHPWord模板类生成报表页面(含文字图片)
  9. linux如何查看端口是否开放
  10. B站百万up主,分享软件测试学习宝典,数万测试人员3连(附系列学习视频)