课程设计报告课程设计名称JAVA课程设计(J2EE)专业计算机科学与技术班级2班学号10030217姓名杨帆指导教师朱红伟成绩2013年1月15日1目录一、设计任务与要求................................................................................................................21.1设计任务与要求.........................................................................................................21.2选题目的与意义.........................................................................................................2二、需求分析............................................................................................................................32.1用户需求分析.............................................................................................................32.2开发环境分析.............................................................................................................3三、系统设计............................................................................................................................33.1系统总体设计.............................................................................................................33.2功能模块设计.............................................................................................................53.3类的设计...................................................................................................................10四、程序实现..........................................................................................................................114.1程序流程图...............................................................................................................114.2关键算法与技术实现...............................................................................................124.3类与数据结构实现...................................................................................................19五、测试运行..........................................................................................................................205.1系统测试方案...........................................................................................................205.2运行结果分析...........................................................................................................20六、设计体会..........................................................................................................................24七、主要参考文献..................................................................................................................252一、设计任务与要求1.1设计任务与要求现今的社会,人们已经离不开了图片,各种处理图片,他能够把一张图片比较简单化的运用,也大大地提高了该单位工作人员的办事效率,也增加了图片的应用性,比较小的图片可以仔细的看的清楚。本程序是一个图形用户界面程序,可一对图像文件进行放大与缩小,刚载入的文件显示原始尺寸,图像的内设格式是.jif、.jpg、.jpeg。图片浏览器的组成是主界面,运行,对图片进行的一些相关的处理以及后台的一些组合。图片浏览器的原理分以下几点:扫描图片并顺序命名配合使用的一个功能,它的使用方法是:选中Browses窗口内需要批量更名的所有文件,单击文件列表中的项目名称,使其按文件名、大小、日期等规律排列。再单击Tools菜单下的Renameseries命令打开对话框。在机器里一般都存放了许多图片,时间一长,别说文件名,就是连它是干什么用的都不知道了,这时候就需要对它们进行管理,以提高效率。此外,在该界面中也提供了目的路径下存在与复制文件同名文件时的处理方式设置,程序默认给出对比窗口,由用户决定。文件查看,从中选出用户需要的图片,此功能是可以选出用文件夹的形式。这样可以把所有文件都添加进去,使用时会更方便。1.2选题目的与意义在internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用.因此网站建设在internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。本论文的任务目标就是利用JAVA语言做一个用户图形界面的图像放大缩小器,可以对符合格式的图像文件进行放大与缩小。什么是图片浏览器?如今数字图像处理的应用日益广泛,逐步成为信息科学,工程学,医学等许多学科的重要基础,同时作为一种实用技术应用于军事,气象,交通,探矿,水利,农业甚至娱乐等领域。尤其是价格低廉的高性能计算机和诸如数码相机及扫描仪这样的图像采集设备出现后,数字图像处理技术被大量的应用于影视,游戏等公众及娱乐领域,与人类生活密切相关。图片浏览器的目的,使用户对图像资料的使用更加方便。实现对图片处理的各种功能,对资料的保存和处理以及显示,应用广泛。利用图像处理中一些变换算法,实现了对图片的选取,上一张,下一张,放大和缩小等显示特效。处理信息量巨大,要求处理速度极高,实时产生高质量的图形图像是我们不断的追求目标。因此本选题具有较好的使用价值和意义。3二、需求分析2.1用户需求分析图片是现代信息社会中最基本的信息,它是信息变得栩栩如生,更加符合人们的日常交流习惯,因此它成为人类获取和交流信息的主要来源。图片浏览器程序可以支持““.GIF”,“.JPEG”,“.jpeg”,“.TGA”,“.JPG”,“.jpg”等格式,单张打开图片,可以将同一目录下的图片按缩略图打开按“上一张”“下一张”按钮可以显示相应图片。运行Applet时,图像是一气呵成的,因为方法是把图像完整的装入内存再显示的。我设计的是一个简单的图片浏览器,本选题具有较好的实用价值和意义实现了对图片进行浏览的基本功能,例如:有时候,得到的图片文件比较大,一屏幕显示不下,而有时候所要看的图片又比较小,以原先的大小观看又会看不清楚,这时候就必须使用到放大和缩小显示图片的功能,使用起来非常简单,只在浏览状态下,点击相关工具栏上的按钮即可,非常方便放大或缩小功能。利用图片处理中的一些变换算法,可以显示当前文件上一张,下一张图片。能够连续放映当前文件下的所有图片,时间间隔用户指定,并且可以在图片浏览过程中随时终止浏览。项目的开发背景说明、需求分析和概要设计说明书。用户的特点:户来说,此软件简单易用,用户只需稍微看一下界面就可以进行操作。2.2开发环境分析利用eclipse作为开发工具,使用各种类组合而成,各种窗体作为基本框架,设计并开发了一个图片浏览器。硬件平台要求,由于本软件为单机软件,不需要进行大量的数据读写和数据交换,故对系统硬件配置的要求并不高,只要能够平稳运行Windows操作系统的硬件平台,都能够使用本软件。三、系统设计3.1系统总体设计1.创建图片浏览器的相关对象我们首先需要创建图片浏览器的相关对象。我们先创建图片浏览器的界面对象JFrame,然后在该类中,我们为菜单、按钮加了事件监听器,所以定义了一个继承ItemListener的类ItemListener来响应这些动作。在Action中响应动作,就到处理具体逻辑的步骤,我们把所有的逻辑处理放到JMenuTest类中,JMenuTest中包括打开图片、上一张、下一张、放大和缩小图片等功能,为了程序更好的解耦合,我们可以把具体的某些业务处理放置到独立的类中进行处理。4除了以上所说的几个类,由于我们这个程序有打开图片的操作,所以需要一个文件过滤器(只能选择图片类型的文件),所以定义了一个继承JFileChooser的类ViewChooser,这个类里面定义了自己的文件过滤器。本系统中涉及的对象及它们之间的关系如图3.1.1所示。图3.1.1图片浏览器关系图此系统一共有7个功能,分别的是:打开、退出、上一张、下一张、放大、缩小、和使用说明。还有一共使用2个类,分别是ImageGallery类和MyJList类。以上是关于此系统的图片浏览器关系图,是用PowerDesigner工具画出。本系统中所涉及的系统流程图如图3.1.2所示,大致分为7个小功能。用绘图工具绘制系统流程图,与之相对应的是3.1.1的关系图。有了系统流程图,对于系统的总体设计就方便多了。所以,在开发软件时,绘制系统流程图是非常重要的一个环节。它是开发者,对系统设置和应用的整体思路。有了它,系统的整体架构就形成了。接下来,就是对大概的它,进行细化。一个一个说清楚,把7个功能模块进行详细的解释和说明。例如:分别用了哪些类,哪些方法,有哪些属性以及它们之间的关系。见如下系统流程图:5图3.1.2图片浏览器的系统流程图3.2功能模块设计图片浏览器的菜单是这样的结构:文件(F):打开(O)退出(Q)帮助(H):使用说明功能:放大(M)缩小(G)上一个(L)下一个(N)文件对话框Java文件对话框的实现比较简单,只要使用JFileChooser类并提供一个自己的构造器即可。这里的文件对话框