欢迎来到天天文库
浏览记录
ID:39454601
大小:386.01 KB
页数:10页
时间:2019-07-03
《Java课程设计的图片浏览器的》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一.课程设计的任务及要求二.需求分析图形化界面(GUI)编程,编写一个图片浏览器程序可以支持““.GIF”,“.JPEG”,“.jpeg”,“.TGA”,“.JPG”,“.jpg”等格式,单张打开图片,可以将同一目录下的图片按缩略图打开按“上一张”“下一张”按钮可以显示相应图片。运行Applet时,图像不是一气呵成的,因为方法不是吧图像完整的装入内存再显示的。于此相反,方法创建一个线程,该线程与Applet的原有线程并发执行,一边装入一边显示,从而产生上了不联需显示的现象。为了提高图像才显示效果,可以采用双缓冲技术:首先把图像装入内存,然后再显示在屏幕上。三.设计思路3
2、.1界面设计选择图片按钮:主要用dir函数实现图片的遍历。上一张,下一张:通过做标轴回调函数实现。由于本软件为单机软件,不需要大量的数据读写和数据交换,实现上、下功能要求只能读取PictureBox控件当前加载的目录,读取当前路径,创建一维数组。frame=newFrame("PictureViewer");Panelpb=newPanel();Buttonselect=newButton("选择图片");previous=newButton("上一张");next=newButton("下一张");select.addActionListener(this);prev
3、ious.addActionListener(this);3.2.图像加载:Applet常用来显示储存在文件中的图像,多数Applet使用的是GIF或JPEG格式的图像文件。需Applet加载图像只需首先定义Image对象,然后使用getImage()方法把图像和文件结合起来即可。image_width=bi.getWidth(this);image_height=bi.getHeight(this);doubleimage_proportion=1.0*image_height/image_width;System.out.println("image:w"+imag
4、e_width+",h"+image_height+",p1"+image_proportion);10if(image_proportion>screen_proportion){image_height=screen_height;image_width=(int)(image_height/image_proportion);System.out.println("p1>p0w="+image_width);}else{image_width=screen_width;image_height=(int)(image_width*image_proportion)
5、;System.out.println("p0>p1h="+image_height);}四.详细设计4.1.程序设计流程图开始图片上一张查找盘符图片下一张查找文件夹结束查找文件4.2.源程序代码packageC;importjava.io.File;importjava.io.FilenameFilter;publicclassMyFilterimplementsFilenameFilter{10privateString[]extension;publicMyFilter(){extension=newString[]{".jpg",".JPG",".gif",".
6、GIF",".png",".PNG",".jpeg",".JPEG"};}publicMyFilter(String[]extension){this.extension=extension;}publicbooleanaccept(Filedir,Stringname){for(Strings:extension){if(name.endsWith(s)){returntrue;}}returnfalse;}}packageC;importjava.awt.*;importjava.awt.event.*;importjava.awt.image.*;publiccl
7、assMyCanvasextendsCanvasimplementsComponentListener{/****/privatestaticfinallongserialVersionUID=1L;privateBufferedImagebi;privateImageim;privateintimage_width;privateintimage_height;publicvoidsetImage(BufferedImagebi){this.bi=bi;this.zoom();}publicvoidpaint(Graphicsg){g.
此文档下载收益归作者所有