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. HttpClient 如何设置请求接口等待时间
  2. MVC – 9.mvc整体请求流程
  3. 【TOJ 3305】Hero In Maze II
  4. aesmiyao php_php写的AES加密解密类分享
  5. PyTorch学习笔记(四):PyTorch基础实战
  6. Jmeter4.0---- HTTP请求默认值(14)
  7. asp.net my sqlHelper
  8. windows DNS 服务器递归查询超时机制
  9. XenCenter为虚拟机C盘扩容
  10. 领域的初学者--推荐的一本书
  11. 【Linux】history用法
  12. 1、spring之Resource加载
  13. Google Analytic谷歌分析
  14. 不重启JVM动态添加日志(阿里Arthas)
  15. 嵌入式主板开发设计需要考虑哪些因素?
  16. python的英文单词表_随机单词生成器 - Python
  17. Ordinal numeral
  18. JD-FreeFuck 京东薅羊毛控制面板 后台命令执行漏洞
  19. 工控变成用c语言还是plc,工控机、单片机、PLC有哪些区别
  20. Linux同时开启tcp_tw_recycle和tcp_timestamps导致TCP syn有时不响应故障排查

热门文章

  1. ODBC、OLEDB、ADO
  2. Oledb方式读取不规则(有合并单元格)Excel(记录)
  3. Redis基础(含代码)
  4. no matching records found js组件bootscrapt
  5. Flutter--自定义AppBar
  6. 六款好用到爆的电脑软件,只有百分之一的人全用过!
  7. PyTorch中的matmul函数详解
  8. matlab中bilinear函数,【Bilinear interpolation】双线性插值详解(转)[组图]
  9. css3 3d旋转兼容模式下,CSS3 3D 转换
  10. Ajax获取数据渲染到页面的过程