Java课程设计报告++原代码++图片查看器+++图片进行放大,缩小,左旋,右旋,另存,彻底删除

上传人:汽*** 文档编号:564377791 上传时间:2024-02-25 格式:DOCX 页数:20 大小:152.68KB
返回 下载 相关 举报
Java课程设计报告++原代码++图片查看器+++图片进行放大,缩小,左旋,右旋,另存,彻底删除_第1页
第1页 / 共20页
Java课程设计报告++原代码++图片查看器+++图片进行放大,缩小,左旋,右旋,另存,彻底删除_第2页
第2页 / 共20页
Java课程设计报告++原代码++图片查看器+++图片进行放大,缩小,左旋,右旋,另存,彻底删除_第3页
第3页 / 共20页
Java课程设计报告++原代码++图片查看器+++图片进行放大,缩小,左旋,右旋,另存,彻底删除_第4页
第4页 / 共20页
Java课程设计报告++原代码++图片查看器+++图片进行放大,缩小,左旋,右旋,另存,彻底删除_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《Java课程设计报告++原代码++图片查看器+++图片进行放大,缩小,左旋,右旋,另存,彻底删除》由会员分享,可在线阅读,更多相关《Java课程设计报告++原代码++图片查看器+++图片进行放大,缩小,左旋,右旋,另存,彻底删除(20页珍藏版)》请在金锄头文库上搜索。

1、湖南商学院面向对象程序设计课程设计报告题目IM片查看器计算机科学与技术学号专业班级070920101计科0703职称:讲!师2009曲6血课程设计评审表指导教师签名职称评审时间年月日目录1、课程设计概述52、系统功能描述53、系统需求分析与设计53.1系统需求分析53.2系统设计53.2.1系统总体设计53.2.2程序详细设计64、系统测试和使用说明94.1系统测试94.2系统使用说明115、课程设计总结115.1遇到的问题和解决方法115.2心得体会11参考文献11附录12图片查看器1、课程设计概述为提高学生理论与实践相结合的能力,计电学院于2009年6月开展了为期两周的面向对象课程设计,针

2、对对象为07级全体计科专业学生。本次实践教学采用学生集中在学校网络机房上机,指导老师指导的形式。要求学生用所学的面向对象程序设计语言JAVA来编写程序,实现特定功能,以加深对面向对象程序设计这个概念的理解。2、系统功能描述本次设计的图片查看器实现了在用户选定的文件目录下循环浏览指定后缀的图片文件,并且可以对选择的图片进行放大,缩小,左旋,右旋,另存,彻底删除等操作。3、系统需求分析与设计3.1 系统需求分析随着数字产品渐进人们的生活,网络通信技术、图像处理技术以及多媒体技术的发展,越来越多的用户希望能够对已有的数字图片进行查看并能够实现简单的操作。本图片查看器以其简洁明了易操作的特点实现图片查

3、看的基本功能,从而也就满足了用户的基本要求。3.2 系统设计3.2.1系统总体设计(1)系统功能分析本系统要用到以下的Java编程技术实现的功能:图像显示功能:客户需要显示图片,这将由图像显示功能来完成。显示图片的时候,用到了双缓冲技术来消除闪烁问题。(2)类图系统中用到了一些基本类、实现了一些接口。系统所用到的类如图1所示:图1系统类图3.2.2 程序详细设计(1)程序中引用的类 JPanel类程序中定义了三个Jpanel类分别是:pathBar,picContainer,ctrBar。用于图片查看器的整体布局。其中pathBar为顶部路径栏,picContainer为图片显示区域,ctrB

4、ar为底部控制栏。 JLabel类程序中定义了类名为pathInfo的JLabel类,用于实现顶部路径栏,底部控制栏按钮的文字显示。 JButton类程序中定义了多个JButton类:openbtn,prebtn,nextbtn,zoominbtn,zoomoutbtn,oripicbtn,angleleftbtn,anglerightbtn,exitbtn,deletebtn,sav;为查看器的按钮。 Image类程序中定义了名为pic的Image类用于对被查看的图片的操作。 BufferedImage类此类为用于显示的缓冲区图像。在对图像进行操作前,都先将图片读进预设的缓冲区,然后再显示在

5、用户前端,这样虽然速度慢了点,但很好的消除了图片闪烁效果。 Graphics2D类此类与上面的BufferedImage类共同作用,通过运用双缓冲技术很好的消除屏闪问题。 String类程序中运用了三个不同的String类,从而实现了需要查看的图片的路径的操作,并且在启动图片查看器时,图片的路径能够在路径栏显示出来。同时还设置了String数组用于存储用户选定的目录下所有指定格式的图片,这样可以实现循环浏览图片等操作。(2)程序的构造方法及其实现因为图片查看器可以实现对图片不同的操作,程序中构造了十多个方法以达到其目的。各构造方法相互联系共同完成图片查看器的各项功能。各个方法描述如下: pub

6、licvoidinit()本方法实现了对图片查看器的界面的整体布局及按钮的初始化。对页面的总体布局采用了以下主要代码进行实现:setLayout(newBorderLayout();add(pathBar,BorderLayout.NORTH);add(picContainer,BorderLayout.CENTER);add(ctrBar,BorderLayout.SOUTH);resize(640,400);设置顶部路径栏,及其文字显示;代码如pathBar=newJPanel();pathBar.setLayout(newBorderLayout();pathInfo.setText(图

7、片查看器);pathBar.add(pathInfo);同时对图片显示区域,底部的控制栏的设置也运用了相似的代码进行实现,在此就不再重复。各按钮除了“打开”一按钮外,其他的各按钮均设置为false。这是因为只有“打开”图片后才能进行以下的像循环浏览,旋转,删除等操作。具体方法的实现见附件。 publicvoidactionPerformed(ActionEvent)在本方法中主要实现了用户对底部控制栏各按钮的点击后,图片查看器进行的相对应的操作反应。方法中一开始用JButtonclick=(JButton)e.getSource();获取按键源,然后根据click与程序设定的已知的类进行比较决

8、定进行相应的反应。if(click=openbtn);if(click=prebtn&pic!=null);等一系列进行判断后,进行或是打开文件open()方法的调用;或是pre()方法的调用;其他各操作也大同小异,在此就不再赘述。方法的详细代码见附件。 publicvoidopen()该方法实现了对用户选定的文件路径下的后缀为.jpg的图片文件的打开操作。同时能够对该路径下的一切符合条件的文件进行跟踪处理。方法中的核心在于一个过滤操作:FileNameExtensionFilterfilter=newFileNameExtensionFilter(*.JPG,jpg);这样就能实现.jpg文

9、件的浏览了。在选定了图片后,相应的按钮值应该被赋值为ture,以便进行其他的操作。若没有选定图片则显示“没有选择图片”。 publicvoidsave()throwsIOException该方法是为了满足用户希望对图片进行另外存储的操作,通过用户自己的选择重新选定图片的存储路径。详细实现见附件中代码。 publicvoidpre()及publicvoidnext()Pre与next方法实现了对当前图片的上一张下一张的浏览。因为在第一次打开文件时就将该路径下所有符合要求的图片存储在Stringpics中。通过if(i=0)i=pics.length-1;elsei-;其中i为当前的图片位置数。通

10、过dir=path+picsi;获得文件的路径,然后调用loadImage(dir);此方法将在后面介绍;与上面的方法相对应的是此方法实现了对当前图片下一张的浏览,实现原理与上相同,if(i=pics.length-1)i=0;elsei+;通过调用loadImage(dir);一方法实现。 publicvoidpicTrans()如果bufImage为空则直接返回,之后进行过滤图像操作,2D仿射变换,设置仿射变换的比例因子transform.setToScale(scaleX,scaleY);创建仿射变换操作对象,过滤图像,将目标图像存在filteredBufImage中,然后显示。publ

11、icvoidzoomin()此方法实现了对当前的图片进行按设置比例缩小操作。在进行缩小操作前,先对图片的大小进行判断,看是否已经缩小到最小,若最小则显示提示信息“已经缩至最小!”;否则进行缩小操作。在此过程中调用了picTrans()方法,以及repaint();重绘组件的方法。 publicvoidoripic()及publicvoiddelete。方法实现了将放大或缩小后的图片大小还原的操作。同时也调用了picTrans()方法,以及repaint();重绘组件的方法。具体的picTrans()方法将在下面详细描述。此方法具体实现见附件;publicvoiddelete()方法将图片彻底删

12、除,删除后图片彻底被粉碎,回收站里面都不能找到。因此要慎用此按钮。 publicvoidangleleft()及publicvoidangleright()方法每次对图片进行45的向左向右的旋转操作。radius+=-Math.PI/2;用以控制,而这些操作后,每次都应oripicbtn.setEnabled(true),也就是要将还原按钮赋值为真。 publicvoidloadImage(StringfileName)及publicvoidexit()前一个方法通过增加图像到加载器中,创建原始缓冲区图像,创建bufImage的图形环境:bufImageG=bufImage.createGra

13、phics();传输源图像数据到缓冲区图像中一些列的操作,对图片进行了加载操作;publicvoidexit()方法是退出查看器的方法。4、系统测试和使用说明4.1系统测试使用eclipse运行程序时,会出现applet小程序的界面。并显示程序已启动。显示如图2:图2程序开始时的界面单击“打开”按钮后的效果图如图3:图3选择图片文件多次单击“缩小”按钮后的效果图如图4:图4图片缩小显示多次单击放大按钮后的效果图如图5所示:图5图片放大显示4.2 系统使用说明由于本人的能力有限在制作此图片查看器时有许多没能完善的地方,因此客户在使用时应注意慎用删除与保存按钮,另外其他的操作只要单击按钮则行。特别

14、值得注意原始按钮只有在对图片已经进行了放大或缩小的操作后其才是有效的。5、课程设计总结5.1遇到的问题和解决方法在用JAVA编写程序时,我遇到了很多困难,对很多的接口,类,方法都不是很熟悉,只好采用查看API文档,一个一个进行对照学习,同时也上网查看了有关图片查看器的相关描述,还向同学请教了,翻阅了相关的书籍。尤其是因为有些方法需要使用JDK1.6才行,所以在学校网络机房一开始不能运行,在安装了1.6版本后运行正常了。另外文件在打开时会有严重的频闪问题,在重写了publicvoidupdate(Graphicsg)this.paint(g);后解决了。5.2 心得体会在这次的面向对象程序设计课程设计中,我进一步熟悉了上一学期学习的JAVA语言中的包,类,方法:导入哪些包,继承哪些类可以实现什么方法等。深刻感受到了面向对象语言中类库的强大功能。但是由于自己掌握的知识有限,图片查看器的功能没有做到尽善尽美,尤其是删除操作,删除掉以后就没了,在回收站也找不到。还有就是单击“保存”按钮后似乎就不能进行其他操作,但这样的情况或有或无。通过这次的课程设计,我懂得了要充分利用网络资源查找资料同时要多向同学请教,大家互相讨论进步得会很快。通过近两周多的努力,这次课程设计圆满的结束了,在这个过程中,我收获了很多的知识,同时

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号