计算机网络课程设计报告829868334_第1页
计算机网络课程设计报告829868334_第2页
计算机网络课程设计报告829868334_第3页
计算机网络课程设计报告829868334_第4页
计算机网络课程设计报告829868334_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂

2、蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆

3、袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁

4、螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅

5、薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿

6、袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆

7、蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃 目 录第一章 设计目的、任务及要求.31.1 设计目的.31.2 设计任务与要求.3第二章 系统分析设计 .42.1 系统流程分析.42.2 系统功能需求分析.52.3 系统设计

8、要求.6 2.3.1 系统数据结构的设计.62.3.2 系统页面设计要求.62.4 系统运行要求.7第三章 系统实现.73.1 断点下载模块.73.2断点上传模块.73.3主页面模块.73.4 运行截图.8第四章 总结.9参考文献.10源代码附录.10第一章 设计目的、任务与要求1.1设计目的本次计算机网络原理课程设计的目的是为了使学生在课程学习的同时,通过在一个计算机网络环境中的实际操作,巩固计算机网络原理课堂教学所讲授网络的基本理论、基本概念和方法技术,对现代计算机网络的基本功能有一个初步的了解。为学生今后使用计算机网络的理论和方法,开发大型、复杂的集成系统,打下一个坚实的基础。同时在编程

9、过程中加强学生对编程语言的掌握,并提高学生的动手能力以及发现问题、解决问题的能力。1.2设计任务与要求课程设计的基本要求是:1通过课程设计实践,理解计算机网络原理的基本要点;2通过课程设计实践,要求学生对于网络的相关协议有深入的掌握,通过实验加深对计算机网络工作原理的理解,学会使用网络软件开发工具,培养学生的自学能力和开发网络系统软件的能力,并训练软件工程的开发方法。3通过课程设计实践,进一步培养学生综合开发网络软件的能力,培养团队合作的能力,重点在网络应用软件的开发。4. 整个课程设计要求学生按软件工程原理进行组织,文档和参考文献必须规范、齐全。文件传输任务要求:1. 提供操作页面,要求页面

10、友好2. 支持断点传输3. 要实现上传和下载功能,其他的功能可自己添加第二章 系统分析设计2.1系统流程分析internet服务器端本地服务器客户端下载文件输入url上传文件下载文件注册或登录系统基本操作流输入url或者服务器上的一个文件名判断是不是url和url所确定的文件进行连接通过socket对服务器上的资源进行连接连接成功获得所需要文件的流,确定要下载的文件段,然后进行下载连接成功获得所需要文件的流,确定要下载的文件段,然后进行下载下载完成 下载流程图确定要上传的文件和服务器建立连接连接成功获得文件的流,确定要上传的文件段,上传完 成上传流程图2.2系统功能需求分析系统要求有友好的页面

11、,因此用swing技术仿造迅雷的页面,实现了简单、友好的客户以及服务器端的操作页面。在操作页面的各种操作时通过事件监听程序控制的,达到所有需求功能的实现。系统中,每次下载或上传都会建立单独的对象存储其下载或上传的信息,其中包括实时记录下载或上传的文件的进度(endpos标记文件尾部信息,startpos标记开始信息),以下载为例:每次下载,都从文件的startpos位置开始,下载size个字节,然后使startpos增长size个字节。从而实现断点下载或上传。下载功能分两部分,一是从internet上的服务器上下载资源,只要输入资源的url地址,然后建立连接,获得数据流便可实现下载。二是从编写

12、的服务器上下载资源,首先与服务器通过socket建立连接,然后通过数据流实现文件的传输。上传功能实现是下载过程的一个逆操作,通过文件流,将要上传的文件发到服务器上。2.3系统设计要求2.3.1系统数据结构的设计根据系统的需求,必须实现下载的数据记录和上传的数据记录,所以设计两个实体类upload和download来记录上传和下载的相关信息。以上传为例,其中包括要上传的文件名,文件路径,文件长度,上传的开始位置,上传的结束位置等,以满足断点上传的需要。上传的文件信息存在服务器上,用类source来记录保存上传文件的信息。2.3.2系统页面设计要求系统页面要简单友好,所有的功能都能再页面上展示出来

13、。页面的设计风格如下图:2.4系统运行要求1.先运行服务器端,再运行客户端。然后进行各种下载上传的操作。2客户端程序中所用到的ip号必须和服务器所在计算机上的ip相同,所用到的端口号必须和服务器上的端口号相同。第三章 系统实现3.1断点下载模块下载分为两种情况,第一是从别人的服务器上下载,则需要输入一个url地址,如果此地址合法,则创建下载的实例,然后与此地址标记的文件进行连接,连接成功后获取该文件的输出流,然后传送到要下载的主机上并按照提前选定的路径将文件写到硬盘上。第二是从自己的服务器上下载资源,则需要选中服务器上的一个或多个资源,然后点击下载,创建下载实例,然后进行连接传输,最后写到本机

14、的硬盘上。在下载的过程中,会实时记录要下载文件的开始位置和结束位置,当点击暂停或者异常退出时,就会自动将相关的数据保存,下次启动程序会调用上次保存的数据,然后继续进行下载操作,以实现断点下载。这两种方式分别用到了url和socket的相关知识,文件的传输用的是文件流和thread,相关的操作是通过事件监听程序实现的。3.2断点上传模块上传是上传到自己的服务器上。点击上传按钮,然后选择要上传的文件,如果文件存在,则用socket和服务器进行连接,连接成功后将文件流传给服务器,然后在服务器端进行些文件的操作。在上传的过程中,也可以进行暂停,断点上传的原理和断点下载的原理是完全一样的。用到的知识点是

15、url和socket的相关知识,文件的传输用的是文件流和thread,相关的操作是通过事件监听程序实现的,和上传用的知识基本相同。3.3主页面模块主页面是用swing写的,最上面是个工具条,左边是个tree,右边是个table和textarea,table显示下载或上传的信息。具体布局如下图。3.4运行截图服务器主页面断点下载页面断点上传页面第四章 心得体会做课程设计是一个难得的锻炼的机会。在编写的过程中加强对java的掌握,尤其是对swing、soclet、线程和事件监听的掌握。在本次课程设计中,主要是通过这些知识来实现所需要的功能的。画面是用swing写的,但是在写的过程中出现了很多以前没

16、有见过的问题。比如当我用jframe的布局管理器时,页面的布局总是不能符合自己的要求,后来查了很的资料,做了很多的测试才发现,如果用了布局管理器,那么容器就会根据实际组件的大小,在布局管理器的基础上,进行必要的调整,因为页面布局管理器默认的是borderlayout,于是就把页面的布局管理器设置为null,然后所有组件的位置是通过坐标来控制的,当然这种做法很麻烦,组件的位置是通过不断的调试来确定的。通过大量的对socket的应用,我更加熟悉了socket的工作原理,以及如何在两台计算机之间进行通信。计算机之间的文件传输是通过流来实现的,在以前学习的基础,我更加熟练的掌握了各种流之间的转换,达到

17、了对流的进一步的认识。thread和事件监听,经过很多资料的查询,我发现它们都不只有一种使用的方法,在不同的环境下,各种方法的选择也是有一定的技巧的。在这次的课程设计中,让我清楚的认识到,数据结构的设计是多么关键。一拿到题目,没经过深思熟虑就把系统的数据结构定了下来。起初没事,但是随着功能的逐步完善,才发现,如果继续用当前的数据结构,那么所需要的功能就很难实现,甚至就没法实现。当时先是想在原先的基础上进行修改,但是没想到越改越糟糕,结果之前写好的功能也出现了问题。无奈之下只好从头再来重新设计数据结构,虽然之间花了不少的时间,但是我知道,如果不从头再来的话,花的时间会更多,而且还不一定能实现所有

18、的功能。这次的教训是十分深刻的,让我感觉到,对一个项目或工程来说,设计比编写更加重要,所以应该在设计上花更多的时间,以免最后要从头再来。编程是一个非常枯燥的事情,但是也能使你从中体会到成就感。编程枯燥在,其实一个程序是很多重复知识的集合,很繁琐,但是一不小心就会出错,而且即使是很小的错误,有时候也很难找出来,所以编程是一更非常需要耐心的过程。但是当你找到错误并解决后,你就会有一种满足感,因为这是你通过亲自的努力把问题解决了。每次编程这种感觉都十分的深刻,虽然不能保证以后不再出错,但是看到曾经的错误不再在自己的程序中出现,这就是进步。参考文献:1 bruce eckel . java编程思想 .

19、 机械工业出版社,2007.62 andrew s.tanenbaum . 计算机网络(第四版) . 清华大学出版社,2004.83 java api (电子书)源代码附录:客户端代码:package jiangtao_guo.client;import java.awt.borderlayout;import java.awt.color;import java.awt.dimension;import java.awt.graphics;import java.awt.gridlayout;import java.awt.textfield;import java.awt.toolkit;

20、import java.awt.event.actionevent;import java.awt.event.actionlistener;import java.awt.event.mouseevent;import java.awt.event.mouselistener;import java.awt.event.windowevent;import java.awt.event.windowlistener;import java.io.bufferedinputstream;import java.io.bufferedoutputstream;import java.io.dat

21、ainputstream;import java.io.dataoutputstream;import java.io.file;import java.io.fileinputstream;import java.io.fileoutputstream;import java.io.ioexception;import java.io.inputstream;import java.io.objectinputstream;import java.io.objectoutputstream;import java.io.outputstream;import java.io.randomac

22、cessfile;import .inetaddress;import .malformedurlexception;import .socket;import .url;import .unknownhostexception;import java.util.arraylist;import java.util.iterator;import java.util.list;import javax.swing.japplet;import javax.swing.jbutton;import javax.swing.jdialog;import javax.swing.jfilechoos

23、er;import javax.swing.jframe;import javax.swing.jlabel;import javax.swing.jmenu;import javax.swing.jmenubar;import javax.swing.jmenuitem;import javax.swing.jpanel;import javax.swing.jpopupmenu;import javax.swing.jscrollpane;import javax.swing.jtable;import javax.swing.jtextarea;import javax.swing.jt

24、extfield;import javax.swing.jtree;import javax.swing.event.treeselectionevent;import javax.swing.event.treeselectionlistener;import javax.swing.table.defaulttablemodel;import javax.swing.table.tablemodel;import javax.swing.tree.defaultmutabletreenode;import jiangtao_guo.bean.download;import jiangtao

25、_guo.bean.upload;import com.sun.java.swing.plaf.windows.resources.windows;import com.sun.jmx.snmp.tasks.task;public class mainframe extends jframe implements actionlistener, mouselistener,treeselectionlistener, windowlistener /* * param args */static int witchrow = -1;/ -1没选中行 static string ip = &qu

26、ot;192.168.36.13" /便于修改static int port = 3320;static mainframe frame = null;/ 主页面static string action = "全部下载任务"int screenwidth = 0;int screenheight = 0;jmenubar menubar = null;jpanel panel_table = null;/ 显示下载信息的paneljtable table = null;jpanel panel_tree = null;jtree tree = null;strin

27、g category_download = "全部任务", "正在下载", "已下载", "垃圾箱" ;string category_upload = "全部任务", "正在上传", "已上传", "垃圾箱" ;jtextarea textarea = null;jdialog dialog = null;jfilechooser filechooser = null;taskengine taskengine = null;myta

28、blecellrenderer cellrenderer = null;jpopupmenu popupmenu = null;string url = null;jtextfield field =null;jframe f = null; /showdialogint threadnum = 1;int maxvalue = 1024*1024*1024;/progress的最大值/ 构造页面public mainframe() taskengine = new taskengine(this);cellrenderer = new mytablecellrenderer(this,tas

29、kengine.listdownloading, taskengine.listuploading,taskengine.listdownloaded, taskengine.listuploaded);toolkit kit = toolkit.getdefaulttoolkit(); / 定义工具包dimension screensize = kit.getscreensize(); / 获取屏幕的尺寸screenwidth = screensize.width / 2; / 获取屏幕的宽screenheight = screensize.height / 2; / 获取屏幕的高this.

30、setlayout(new borderlayout();this.setdefaultcloseoperation(exit_on_close);this.setsize(700, 600);/ this.setresizable(false);this.setlocation(screenwidth - 350, screenheight - 300);this.settitle("上传下载器-涛");this.addmouselistener(this);this.addwindowlistener(this);this.setvisible(true);this.a

31、dd(this.createmenubar(), borderlayout.north);this.add(this.createpanel_table(), borderlayout.center);this.add(this.createpanel_tree(), borderlayout.west);this.createtabledown();this.pack();/ 初始化source表public void createtablesource() iterator<upload> iterator1 = taskengine.serversource.iterator

32、();int i = 0;defaulttablemodel tm = (defaulttablemodel) table.getmodel();/ 清空tablefor (int j = 0; j < table.getrowcount(); j+) tm.removerow(0);tm.addrow(new object05);while (iterator1.hasnext() upload dl = iterator1.next();tm.setvalueat("资源", i, 0);tm.setvalueat(dl.getfilename(), i, 1);

33、tm.setvalueat(dl.getfilelength(), i, 2);table.getcolumnmodel().getcolumn(3).setcellrenderer(cellrenderer);/tm.setvalueat(dl.gettimeleft(), i, 4);tm.setvalueat(dl.gettimewaste(), i, 4);i+;if (i = 12) tm.addrow(new object15);if(witchrow!=-1)table.setrowselectioninterval(witchrow, witchrow);/ 初始化表publi

34、c void createtabledown() iterator<download> iterator1 = taskengine.listdownloading.iterator();iterator<download> iterator2 = taskengine.listdownloaded.iterator();int i = 0;defaulttablemodel tm = (defaulttablemodel) table.getmodel();/ 清空tablefor (int j = 0; j < table.getrowcount(); j+)

35、 tm.removerow(0);tm.addrow(new object05);if ("全部下载任务".equals(frame.action) while (iterator1.hasnext() download dl = iterator1.next();if(dl.getstates()=1)tm.setvalueat("下载", i, 0);else if(dl.getstates()=2)tm.setvalueat("暂停", i, 0);else if(dl.getstates()=3)tm.setvalueat(&

36、quot;完成", i, 0);tm.setvalueat(dl.getfilename(), i, 1);tm.setvalueat(dl.getfilelength(), i, 2);table.getcolumnmodel().getcolumn(3).setcellrenderer(cellrenderer);/tm.setvalueat(dl.gettimeleft(), i, 4);tm.setvalueat(dl.gettimewaste(), i, 4);i+;if (i = 11) tm.addrow(new object15); else if ("正在

37、下载".equals(frame.action) while (iterator1.hasnext() download dl = iterator1.next();if (dl.getstates() = 1) / defaulttablemodel tm = (defaulttablemodel)/ table.getmodel();if(dl.getstates()=1)tm.setvalueat("下载", i, 0);else if(dl.getstates()=2)tm.setvalueat("暂停", i, 0);else if(

38、dl.getstates()=3)tm.setvalueat("完成", i, 0);tm.setvalueat(dl.getfilename(), i, 1);tm.setvalueat(dl.getfilelength(), i, 2);table.getcolumnmodel().getcolumn(3).setcellrenderer(cellrenderer);/tm.setvalueat(dl.gettimeleft(), i, 4);tm.setvalueat(dl.gettimewaste(), i, 4);i+;if (i = 12) tm.addrow(

39、new object15); else if ("已下载".equals(frame.action) while (iterator2.hasnext() download dl = iterator2.next();if (dl.getstates() = 3) / defaulttablemodel tm = (defaulttablemodel)/ table.getmodel();if(dl.getstates()=1)tm.setvalueat("下载", i, 0);else if(dl.getstates()=2)tm.setvalueat

40、("暂停", i, 0);else if(dl.getstates()=3)tm.setvalueat("完成", i, 0);tm.setvalueat(dl.getfilename(), i, 1);tm.setvalueat(dl.getfilelength(), i, 2);table.getcolumnmodel().getcolumn(3).setcellrenderer(cellrenderer);/tm.setvalueat(dl.gettimeleft(), i, 4);tm.setvalueat(dl.gettimewaste(),

41、i, 4);i+;if (i = 12) tm.addrow(new object15); else if ("下载垃圾箱".equals(frame.action) if(witchrow!=-1)table.setrowselectioninterval(witchrow, witchrow);public void createtableup() iterator<upload> iterator1 = taskengine.listuploading.iterator();iterator<upload> iterator2 = tasken

42、gine.listuploaded.iterator();int i = 0;defaulttablemodel tm = (defaulttablemodel) table.getmodel();/ 清空tablefor (int j = 0; j < table.getrowcount(); j+) tm.removerow(0);tm.addrow(new object05);if ("全部上传任务".equals(frame.action) while (iterator1.hasnext() upload dl = iterator1.next();if(d

43、l.getstates()=1)tm.setvalueat("上传", i, 0);else if(dl.getstates()=2)tm.setvalueat("暂停", i, 0);else if(dl.getstates()=3)tm.setvalueat("完成", i, 0);tm.setvalueat(dl.getfilename(), i, 1);tm.setvalueat(dl.getfilelength(), i, 2);table.getcolumnmodel().getcolumn(3).setcellrende

44、rer(cellrenderer);/tm.setvalueat(dl.gettimeleft(), i, 4);tm.setvalueat(dl.gettimewaste(), i, 4);i+;if (i = 11) tm.addrow(new object15); else if ("正在上传".equals(frame.action) system.out.println("正在上传");while (iterator1.hasnext() upload dl = iterator1.next();if (dl.getstates() = 1)

45、/ defaulttablemodel tm = (defaulttablemodel)/ table.getmodel();if(dl.getstates()=1)tm.setvalueat("上传", i, 0);else if(dl.getstates()=2)tm.setvalueat("暂停", i, 0);else if(dl.getstates()=3)tm.setvalueat("完成", i, 0);tm.setvalueat(dl.getfilename(), i, 1);tm.setvalueat(dl.getf

46、ilelength(), i, 2);table.getcolumnmodel().getcolumn(3).setcellrenderer(cellrenderer);/tm.setvalueat(dl.gettimeleft(), i, 4);tm.setvalueat(dl.gettimewaste(), i, 4);i+;if (i = 12) tm.addrow(new object15); else if ("已上传".equals(frame.action) while (iterator2.hasnext() upload dl = iterator2.ne

47、xt();if (dl.getstates() = 3) if(dl.getstates()=1)tm.setvalueat("上传", i, 0);else if(dl.getstates()=2)tm.setvalueat("暂停", i, 0);else if(dl.getstates()=3)tm.setvalueat("完成", i, 0);tm.setvalueat(dl.getfilename(), i, 1);tm.setvalueat(dl.getfilelength(), i, 2);table.getcolumn

48、model().getcolumn(3).setcellrenderer(cellrenderer);tm.setvalueat(dl.gettimewaste(), i, 4);i+;if (i = 12) tm.addrow(new object15); else if ("上传垃圾箱".equals(frame.action) if(witchrow!=-1)table.setrowselectioninterval(witchrow, witchrow);public boolean showfilechooser() filechooser = new jfile

49、chooser();filechooser.setfileselectionmode(jfilechooser.directories_only);int returnval = filechooser.showopendialog(this);if (returnval = 0) taskengine.location = filechooser.getselectedfile().getabsolutepath();system.out.println(taskengine.location);return true;return false;public boolean showfile

50、save() filechooser = new jfilechooser();filechooser.setfileselectionmode(jfilechooser.files_and_directories);int returnval = filechooser.showopendialog(this);if (returnval = 0) taskengine.location = filechooser.getselectedfile().getabsolutepath();system.out.println(taskengine.location);return true;r

51、eturn false;public void showdialog() system.out.println("showdialog");f = new jframe("url-download");jpanel panel = new jpanel();jlabel label =new jlabel("url地址:");field = new jtextfield();jbutton button = new jbutton("确定");jbutton button1 = new jbutton("取消");f.setsize(350, 200);f.setlocation(screenwidth-175,screenheight-100);panel.setlayout(null);label.setname("url地址:");label.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论