资源简介

java语言编写的类似于迅雷的下载器的源代码,里面有下载进度和流量多少的现实

资源截图

代码片段和文件信息

package com.view;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class JProgressBar extends frame implements Runnable {
 int x y; // 进度倏起始位置
 int rectWidth rectHeight width height num; // 进度格倏宽进度格高进度倏宽进度倏高格子数量
 int x0 d n; // 进度进度格之间的距离进度n%
 Image bufImg;
 Graphics gBuf;

 public JProgressBar() {
  x = 40;
  y = 50;
  x0 = x;
  rectWidth = 6; // 每个进度格的宽
  rectHeight = 10;
  d = rectWidth / 3;

  num = 50; // 显示五十个进度格
  width = (rectWidth + d) * num;
  height = rectHeight + 4; // 进度格的高
  init();
  bufImg = this.createImage(getWidth() getHeight());
  gBuf = bufImg.getGraphics();
  paintBack();
  repaint();
 }

 public void init() {
  this.addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent e) {
    System.exit(0);
   }
  });

  this.setSize(this.x * 2 + width this.y * 2 + height);
  this.setVisible(true);
  Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
  int w = getSize().width;
  int h = getSize().height;
  int x = (dim.width - w) / 2;
  int y = (dim.height - h) / 2;
  setLocation(x y);
 }

 public static void main(String[] args) {
  new Thread(new JProgressBar()).start();
 }

 public void paintBack() {
  gBuf.drawRoundRect(x y width height 6 6);
 }

 public void paintProgressRect() {
  Color c = gBuf.getColor();
  gBuf.setColor(new Color(46 211 49));
  x0 = x;
  for (int i = 0; i < n; i++) {
   gBuf.fillRect(x0 y + 2 rectWidth rectHeight);
   x0 += rectWidth + d;
  }
  gBuf.setColor(c);
 }

 public void paint(Graphics g) {
  g.drawImage(bufImg 0 0 this);
 }

 /**
  * 设置进度倏进度
  * 
  * @param n
  *            进度百分比
  */
 public void setPercent(int n) {
  this.n = n;
 }

 public void run() {
  boolean flag = true;
  while (flag) {
   try {
    repaint();
    Thread.sleep(500);
    n++;
    System.out.println(n);
    if (n > num) {
     n = num;
     flag = false;
    }
    paintProgressRect();
   } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
 }

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        226  2011-01-18 16:51  xunlei\.classpath

     文件        382  2011-01-18 16:51  xunlei\.project

     文件        629  2011-01-19 14:17  xunlei\.settings\org.eclipse.jdt.core.prefs

     文件         99  2011-01-19 14:17  xunlei\.settings\org.eclipse.jdt.ui.prefs

     文件       7428  2011-01-20 22:52  xunlei\com\view\MfXunLei.java

     文件       2509  2011-01-20 00:15  xunlei\com\view\URLlx.class

     文件       1115  2011-01-20 00:15  xunlei\com\view\URLlx.java

     文件       2369  2011-01-19 22:02  xunlei\com\view\JProgressBar.java

     文件       3355  2011-01-19 22:02  xunlei\com\view\JProgressBar.class

     文件        690  2011-01-19 22:02  xunlei\com\view\JProgressBar$1.class

     文件        652  2011-01-20 22:52  xunlei\com\view\ProgressPanel.class

     文件       7741  2011-01-20 22:52  xunlei\com\view\MfXunLei.class

     文件       1819  2011-01-20 22:52  xunlei\com\view\MyProgressCellEditor.class

     文件       1900  2011-01-19 13:14  xunlei\image\bt.jpg

     目录          0  2011-01-19 21:09  xunlei\com\view

     目录          0  2011-01-19 21:09  xunlei\.settings

     目录          0  2011-01-19 21:09  xunlei\com

     目录          0  2011-01-19 21:09  xunlei\image

     目录          0  2011-01-19 21:09  xunlei\urllx

     目录          0  2011-01-19 21:09  xunlei

----------- ---------  ---------- -----  ----

                30914                    20


评论

共有 条评论