计算机网络课程设计报告829868334

上传人:仙*** 文档编号:33886840 上传时间:2021-10-19 格式:DOC 页数:37 大小:338.50KB
返回 下载 相关 举报
计算机网络课程设计报告829868334_第1页
第1页 / 共37页
计算机网络课程设计报告829868334_第2页
第2页 / 共37页
计算机网络课程设计报告829868334_第3页
第3页 / 共37页
点击查看更多>>
资源描述
袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃肅艿袁肂芈蒅螇肁莀莈蚃肀聿薃蕿聿膂莆袈肈芄薁螄膇莆莄蚀膇肆薀薆膆膈莂羄膅莁薈袀膄蒃蒁螆膃膃蚆蚂螀芅葿薈蝿莇蚄袇袈肇蒇螃袇腿蚃虿袆节蒆薅袅蒄芈羃袅膃薄衿袄芆莇螅袃莈薂蚁袂肈莅薇羁膀薀袆羀节莃螂罿莅蕿螈罿膄莂蚄羈芇蚇薀羇荿蒀衿羆聿蚅螅羅膁蒈蚀肄芃蚄薆肃莆蒆袅肃 目 录第一章 设计目的、任务及要求.31.1 设计目的.31.2 设计任务与要求.3第二章 系统分析设计 .42.1 系统流程分析.42.2 系统功能需求分析.52.3 系统设计要求.6 2.3.1 系统数据结构的设计.62.3.2 系统页面设计要求.62.4 系统运行要求.7第三章 系统实现.73.1 断点下载模块.73.2断点上传模块.73.3主页面模块.73.4 运行截图.8第四章 总结.9参考文献.10源代码附录.10第一章 设计目的、任务与要求1.1设计目的本次计算机网络原理课程设计的目的是为了使学生在课程学习的同时,通过在一个计算机网络环境中的实际操作,巩固计算机网络原理课堂教学所讲授网络的基本理论、基本概念和方法技术,对现代计算机网络的基本功能有一个初步的了解。为学生今后使用计算机网络的理论和方法,开发大型、复杂的集成系统,打下一个坚实的基础。同时在编程过程中加强学生对编程语言的掌握,并提高学生的动手能力以及发现问题、解决问题的能力。1.2设计任务与要求课程设计的基本要求是:1通过课程设计实践,理解计算机网络原理的基本要点;2通过课程设计实践,要求学生对于网络的相关协议有深入的掌握,通过实验加深对计算机网络工作原理的理解,学会使用网络软件开发工具,培养学生的自学能力和开发网络系统软件的能力,并训练软件工程的开发方法。3通过课程设计实践,进一步培养学生综合开发网络软件的能力,培养团队合作的能力,重点在网络应用软件的开发。4. 整个课程设计要求学生按软件工程原理进行组织,文档和参考文献必须规范、齐全。文件传输任务要求:1. 提供操作页面,要求页面友好2. 支持断点传输3. 要实现上传和下载功能,其他的功能可自己添加第二章 系统分析设计2.1系统流程分析Internet服务器端本地服务器客户端下载文件输入URL上传文件下载文件注册或登录系统基本操作流输入URL或者服务器上的一个文件名判断是不是URL和URL所确定的文件进行连接通过socket对服务器上的资源进行连接连接成功获得所需要文件的流,确定要下载的文件段,然后进行下载连接成功获得所需要文件的流,确定要下载的文件段,然后进行下载下载完成 下载流程图确定要上传的文件和服务器建立连接连接成功获得文件的流,确定要上传的文件段,上传完 成上传流程图2.2系统功能需求分析系统要求有友好的页面,因此用swing技术仿造迅雷的页面,实现了简单、友好的客户以及服务器端的操作页面。在操作页面的各种操作时通过事件监听程序控制的,达到所有需求功能的实现。系统中,每次下载或上传都会建立单独的对象存储其下载或上传的信息,其中包括实时记录下载或上传的文件的进度(endpos标记文件尾部信息,startpos标记开始信息),以下载为例:每次下载,都从文件的startpos位置开始,下载size个字节,然后使startpos增长size个字节。从而实现断点下载或上传。下载功能分两部分,一是从Internet上的服务器上下载资源,只要输入资源的URL地址,然后建立连接,获得数据流便可实现下载。二是从编写的服务器上下载资源,首先与服务器通过socket建立连接,然后通过数据流实现文件的传输。上传功能实现是下载过程的一个逆操作,通过文件流,将要上传的文件发到服务器上。2.3系统设计要求2.3.1系统数据结构的设计根据系统的需求,必须实现下载的数据记录和上传的数据记录,所以设计两个实体类upload和download来记录上传和下载的相关信息。以上传为例,其中包括要上传的文件名,文件路径,文件长度,上传的开始位置,上传的结束位置等,以满足断点上传的需要。上传的文件信息存在服务器上,用类source来记录保存上传文件的信息。2.3.2系统页面设计要求系统页面要简单友好,所有的功能都能再页面上展示出来。页面的设计风格如下图:2.4系统运行要求1.先运行服务器端,再运行客户端。然后进行各种下载上传的操作。2客户端程序中所用到的ip号必须和服务器所在计算机上的ip相同,所用到的端口号必须和服务器上的端口号相同。第三章 系统实现3.1断点下载模块下载分为两种情况,第一是从别人的服务器上下载,则需要输入一个URL地址,如果此地址合法,则创建下载的实例,然后与此地址标记的文件进行连接,连接成功后获取该文件的输出流,然后传送到要下载的主机上并按照提前选定的路径将文件写到硬盘上。第二是从自己的服务器上下载资源,则需要选中服务器上的一个或多个资源,然后点击下载,创建下载实例,然后进行连接传输,最后写到本机的硬盘上。在下载的过程中,会实时记录要下载文件的开始位置和结束位置,当点击暂停或者异常退出时,就会自动将相关的数据保存,下次启动程序会调用上次保存的数据,然后继续进行下载操作,以实现断点下载。这两种方式分别用到了URL和socket的相关知识,文件的传输用的是文件流和thread,相关的操作是通过事件监听程序实现的。3.2断点上传模块上传是上传到自己的服务器上。点击上传按钮,然后选择要上传的文件,如果文件存在,则用socket和服务器进行连接,连接成功后将文件流传给服务器,然后在服务器端进行些文件的操作。在上传的过程中,也可以进行暂停,断点上传的原理和断点下载的原理是完全一样的。用到的知识点是URL和socket的相关知识,文件的传输用的是文件流和thread,相关的操作是通过事件监听程序实现的,和上传用的知识基本相同。3.3主页面模块主页面是用swing写的,最上面是个工具条,左边是个tree,右边是个table和textarea,table显示下载或上传的信息。具体布局如下图。3.4运行截图服务器主页面断点下载页面断点上传页面第四章 心得体会做课程设计是一个难得的锻炼的机会。在编写的过程中加强对java的掌握,尤其是对swing、soclet、线程和事件监听的掌握。在本次课程设计中,主要是通过这些知识来实现所需要的功能的。画面是用swing写的,但是在写的过程中出现了很多以前没有见过的问题。比如当我用jframe的布局管理器时,页面的布局总是不能符合自己的要求,后来查了很的资料,做了很多的测试才发现,如果用了布局管理器,那么容器就会根据实际组件的大小,在布局管理器的基础上,进行必要的调整,因为页面布局管理器默认的是borderLayout,于是就把页面的布局管理器设置为null,然后所有组件的位置是通过坐标来控制的,当然这种做法很麻烦,组件的位置是通过不断的调试来确定的。通过大量的对socket的应用,我更加熟悉了socket的工作原理,以及如何在两台计算机之间进行通信。计算机之间的文件传输是通过流来实现的,在以前学习的基础,我更加熟练的掌握了各种流之间的转换,达到了对流的进一步的认识。Thread和事件监听,经过很多资料的查询,我发现它们都不只有一种使用的方法,在不同的环境下,各种方法的选择也是有一定的技巧的。在这次的课程设计中,让我清楚的认识到,数据结构的设计是多么关键。一拿到题目,没经过深思熟虑就把系统的数据结构定了下来。起初没事,但是随着功能的逐步完善,才发现,如果继续用当前的数据结构,那么所需要的功能就很难实现,甚至就没法实现。当时先是想在原先的基础上进行修改,但是没想到越改越糟糕,结果之前写好的功能也出现了问题。无奈之下只好从头再来重新设计数据结构,虽然之间花了不少的时间,但是我知道,如果不从头再来的话,花的时间会更多,而且还不一定能实现所有的功能。这次的教训是十分深刻的,让我感觉到,对一个项目或工程来说,设计比编写更加重要,所以应该在设计上花更多的时间,以免最后要从头再来。编程是一个非常枯燥的事情,但是也能使你从中体会到成就感。编程枯燥在,其实一个程序是很多重复知识的集合,很繁琐,但是一不小心就会出错,而且即使是很小的错误,有时候也很难找出来,所以编程是一更非常需要耐心的过程。但是当你找到错误并解决后,你就会有一种满足感,因为这是你通过亲自的努力把问题解决了。每次编程这种感觉都十分的深刻,虽然不能保证以后不再出错,但是看到曾经的错误不再在自己的程序中出现,这就是进步。参考文献:1 Bruce Eckel . Java编程思想 . 机械工业出版社,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;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.DataInputStream;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.RandomAccessFile;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.JFileChooser;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.JTextField;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_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 = 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;String category_download = 全部任务, 正在下载, 已下载, 垃圾箱 ;String category_upload = 全部任务, 正在上传, 已上传, 垃圾箱 ;JTextArea textArea = null;JDialog dialog = null;JFileChooser fileChooser = null;Taskengine taskengine = null;MyTableCellRenderer 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,taskengine.listDownloading, taskengine.listUploading,taskengine.listDownloaded, taskengine.listUploaded);Toolkit kit = Toolkit.getDefaultToolkit(); / 定义工具包Dimension screenSize = kit.getScreenSize(); / 获取屏幕的尺寸screenWidth = screenSize.width / 2; / 获取屏幕的宽screenHeight = screenSize.height / 2; / 获取屏幕的高this.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.add(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 iterator1 = taskengine.serverSource.iterator();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);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);/ 初始化表public void createTableDown() Iterator iterator1 = taskengine.listDownloading.iterator();Iterator iterator2 = taskengine.listDownloaded.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() 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(完成, 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 (正在下载.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(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(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(暂停, 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(), 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 iterator1 = taskengine.listUploading.iterator();Iterator iterator2 = taskengine.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(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.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 (正在上传.equals(frame.action) System.out.println(正在上传);while (iterator1.hasNext() Upload 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(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(new Object15); else if (已上传.equals(frame.action) while (iterator2.hasNext() Upload dl = iterator2.next();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.getColumnModel().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 JFileChooser();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 showFileSave() 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;return 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.setLocation(60, 40);label.setSize(90, 25);field.setSize(140, 25);field.setText(file:E:/Program Files/项目/网络课程设计/历史版本1.txt);field.setLocation(135, 40);button.setLocation(90, 100);button.setSize(60, 30);button.addActionListener(this);button1.setLocation(180, 100);button1.setSize(60, 30);button1.addActionListener(this);panel.add(label);panel.add(field);panel.add(button);panel.add(button1);f.add(panel);f.setVisible(true);public JMenuBar CreateMenuBar() JMenu menu1 = null;/ 文件JMenu menu2 = null;/ 编辑JMenu menu3 = null;/ 工具JMenu menu4 = null;/ 帮助JMenuItem item0 = null;/ 下载文件JMenuItem item1 = null;/ 上传文件JMenuItem item2 = null;/ 全部开始JMenuItem item3 = null;/ 全部暂停JMenuItem item4 = null;/ 全部删除JMenuItem item5 = null;/ 退出JMenuItem item6 = null;/ 线程设置JMenuItem item7 = null;/ 路径设置menu1 = new JMenu(文件);menu2 = new JMenu(编辑);menu3 = new JMenu(工具);menu4 = new JMenu(帮助);item0 = new JMenuItem(下载文件);item1 = new JMenuItem(上传文件);item2 = new JMenuItem(全部开始);item3 = new JMenuItem(全部暂停);item4 = new JMenuItem(全部删除);item5 = new JMenuItem(退出);item6 = new JMenuItem(线程设置);item7 = new JMenuItem(路径设置);menuBar = new JMenuBar();menuBar.setBackground(Color.gray);menuBar.addMouseListener(this);item0.addActionListener(this);item1.addActionListener(this);item2.addActionListener(this);item3.addActionListener(this);item4.addActionListener(this);item5.addActionListener(this);item6.addActionListener(this);item7.addActionListener(this);menu1.add(item0);menu1.add(item1);menu1.addSeparator();menu1.add(item2);menu1.add(item3);menu1.add(item4);menu1.addSeparator();menu1.add(item5);m
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!