- 6
- 0
- 约4.24万字
- 约 30页
- 2016-10-16 发布于贵州
- 举报
疯狂java实-第11章_多线程下载工具
第11章 多线程下载工具
11.1 多线程下载工具简介
我们平时在使用互联网的时候,都会使用到许许多多的下载工具,例如Flashget、迅雷等,这些工具可以十分方便的对互联网资源进行下载。这些工具通过图形界面,将下载的信息展示给用户,这些下载信息包括:下载资源的大小、下载进度、下载速度以用其他一些可以让用户了解下载进度的信息。其实这些下载工具所提供的功能,我们同样可以使用Java来实现,这些工具包括HTTP下载、FTP下载以及BT的支持等,另外,下载工具还需要提供多线程下载、断点续传等功能,本章主要介绍如何实现一个HTTP的多线程下载工具。
11.2 建立下载工具的界面
下载工具包括主界面、添加下载资源的界面、悬浮窗口与系统任务栏图标。下载工具的主界面主要向用户展示下载资源的信息,例如显示正在下载的资源信息、已下载完成的资源信息等。添加下载资源界面主要让用户输入需要下载的资源地址等信息,让下载工具可以对该资源进行连接与下载。悬浮窗口就好像Flashget与迅雷这些下载工具一样,在屏幕中建立一个小窗口,该窗口可以展现一些下载信息给用户,如图11.1所示。系统任务图标主要是将下载工具的图标显示到系统的任务栏中。接下来,我们将介绍如何实现这些相关的界面。
图11.1 迅雷的悬浮窗口
11.2.1 主界面
下载工具的主界面主要包括导航树、下载列表、资源信息这三大块,导航树我们可以使用swing的JTree来实现,下载列表可以使用JTable实现,资源信息可以使用JList来实现。
导航树可以让用户选择浏览不同的资源,例如正在下载的资源、下载失败的资源以及成功下载的资源,如果我们需要添加其他的功能,例如对资源进行分类等,都可以向导航树中加入相关的节点。
下载列表主要是将资源的信息展示给用户,包括资源的状态、资源名称、下载速度、进度以及使用时间等。下载列表使用JTable实现,而下载列表中的每一列都需要进行不同的渲染,例如资源的状态需要显示相应的图片、下载进度需要使用进度条进行显示等。
资源信息一块使用JList实现,主要将资源的部分信息显示到该区域。本章中主界面对应的是MainFrame.java,主界面的最终效果如图11.2所示。
图11.2 主界面效果
如图11.2所示,主界面除了上述的三大区域外,还提供了一个工具栏,用于存放对资源的相关操作:新建资源、下始下载、暂停下载、删除选中资源和删除已经完成的任务。为了达到我们所需要的效果,主界面三个区域(导航树、资源列表和资源信息)都需要进行特别的处理,以下的章节将详细描述如何实现这三个区域。
11.2.2 导航树
如图11.2所示,导航树主要有一个任务节点,任务节点下面包括正在载节点、下载失败节点和下载完成节点。在建立导航树前,我们需要准备表示这些节点的对象。新建一个DownloadNode接口,用于表示导航树的节点,该树下面所有的节点对象都必须实现这个接口。
代码清单:code\flashget\src\org\crazyit\flashget\navigation\DownloadNode.java:
public interface DownloadNode {
/**
* 获得节点名称
* @return
*/
String getText();
/**
* 返回对应图标
* @return
*/
ImageIcon getImageIcon();
}
该接口定义了两个方法,分别返回节点的文字与图标,那么可以新建一个正在下载的节点对象,实现DownloadNode。
代码清单:code\flashget\src\org\crazyit\flashget\navigation\DownloadingNode.java:
public class DownloadingNode implements DownloadNode {
public ImageIcon getImageIcon() {
return ImageUtil.DOWNLOADING_NODE_IMAGE;
}
public String getText() {
return 正在下载;
}
}
DownloadingNode表示一个正在下载的节点,以同样的方法,新增其他节点对应的实现类,那么在创建导航树的时候,就可以为导航树设置渲染器。在树的渲染器中,我们可以得到相应的节点对象(DownloadNode的实现类),再根据这些对象得到文本与图标。
代码清单:code\flashget\src\org\crazyit\flashget\ui\NavigationTreeCellRender.java:
public Component getTreeCellR
您可能关注的文档
- 电动车各种提速装途径.doc
- 电动车控制器故快速判断.doc
- 电动车故障分析维修流程.doc
- 电动车故障维修费资料.doc
- 电压互感器的原及结构.doc
- 电喷发动机实验设计.doc
- 电场典型例题精(附答案).doc
- 电大【经济数学础】形成性考核册参考答案.doc
- 电大国民经济核期末复习判断题.doc
- 电大审计学任务7答案.doc
- GB/T 42818.2-2026认知无障碍 第2部分:报告.pdf
- 中国国家标准 GB/T 47116-2026地下采矿机械 工作面移动式采掘机械 采煤机和犁式系统的安全要求.pdf
- 《GB/T 47116-2026地下采矿机械 工作面移动式采掘机械 采煤机和犁式系统的安全要求》.pdf
- 中国国家标准 GB/T 42818.2-2026认知无障碍 第2部分:报告.pdf
- 《GB/T 42818.2-2026认知无障碍 第2部分:报告》.pdf
- 《GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器》.pdf
- 中国国家标准 GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器.pdf
- GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器.pdf
- GB/T 45305.5-2026声学 建筑构件隔声的实验室测量 第5部分:测试设施和设备的要求.pdf
- 中国国家标准 GB/T 45305.5-2026声学 建筑构件隔声的实验室测量 第5部分:测试设施和设备的要求.pdf
原创力文档

文档评论(0)