栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java基础实现简单的资源下载小工具

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java基础实现简单的资源下载小工具

 

 

 

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{
		@Override
		public void actionPerformed(ActionEvent ae){
			DownloadThread dt = new DownloadThread();
			dt.start();
		}
	}
	class DownloadThread extends Thread{
		@Override
		public 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();
			}
		}
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号