JAVA图片浏览器毕业课程设计报告.docx

上传人:b****2 文档编号:11735801 上传时间:2023-06-02 格式:DOCX 页数:23 大小:565.34KB
下载 相关 举报
JAVA图片浏览器毕业课程设计报告.docx_第1页
第1页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第2页
第2页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第3页
第3页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第4页
第4页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第5页
第5页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第6页
第6页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第7页
第7页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第8页
第8页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第9页
第9页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第10页
第10页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第11页
第11页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第12页
第12页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第13页
第13页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第14页
第14页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第15页
第15页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第16页
第16页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第17页
第17页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第18页
第18页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第19页
第19页 / 共23页
JAVA图片浏览器毕业课程设计报告.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA图片浏览器毕业课程设计报告.docx

《JAVA图片浏览器毕业课程设计报告.docx》由会员分享,可在线阅读,更多相关《JAVA图片浏览器毕业课程设计报告.docx(23页珍藏版)》请在冰点文库上搜索。

JAVA图片浏览器毕业课程设计报告.docx

JAVA图片浏览器毕业课程设计报告

(此文档为word格式,下载后您可任意编辑修改!

学号

 

课程设计报告

 

课程名称Java课程设计

题目

实现图片浏览器功能的Java程序设计

学部

专业

班级

姓名

指导教师

 

2011

1

7

Java课程设计任务书

题目:

实现图片浏览器功能的Java程序设计

1.课程设计教学条件要求

JDK1.6+EclipseNetBeansJBuilder+SQLServer2000MySQL

2.课程设计任务

实现一个图片浏览器,主要功能包括:

可以打开一个对话框选择1个或多个文件进行浏览,浏览器中有用于放大、缩小图片的功能。

要求使用Swing或SWT组件实现。

3.课程设计报告书主要内容

1需求分析

系统开发思路和相关开发技术、方法的总体介绍

2概要设计

2.1设计的总体思想与算法描述

2.2模块结构图

2.3各功能模块的功能与处理流程描述

2.4界面设计

3详细设计

各功能模块程序设计(按照功能模块的功能与处理流程描述给出详细的程序代码,并给出重点语句的注释.)

4小结

4.课程设计要求

(1)学生按时到课程设计指定地点签到,遵守课程设计纪律。

(2)学生独立完成课程设计任务。

指导教师分时段验收学生完成的阶段任务。

(3)学生按时提交课程设计成果和打印的课程设计报告书。

5.课程设计参考资料

[1]叶核亚.Java2程序设计实用教程[M](第二版).北京:

电子工业出版

社,2008.4.

[2]辛运帏.Java程序设计.北京:

清华大学出版社[M],2004

[3]张思民,梁维娜.Java程序设计实践教程[M].北京:

清华大学出版社,2006.8

[4]朱福喜,路迟.Java与面向对象程序设计[M].北京:

武汉大学出版社,

[5][美]Echel,B.Java编程思想[M](第三版).北京:

机械工业出版社,2005

撰写者:

江伟指导教师:

江伟

 

目录

1.需求分析............................................1

1.1系统开发思路.......................................1

1.1.1图片浏览器概述.........................................1

1.1.2图片浏览器的功能特点..............................1

1.2系统开发相关开发技术...............................1

1.3方法的总体介绍......................................2

2.概要设计..............................................3

2.1设计的总体思想与算法描述.........................3

2.2模块结构图.........................................3

2.3各功能模块的功能与处理流程描述..................4

2.4界面设计............................................4

2.4.1各主要界面展示.........。

..........................4

2.4.2主要界面实现概述.............................7

3.详细设计.......................。

....................8

3.1模块程序设计.......................................8

3.2重要代码展示.......................................8

4.小结................................................16

参考文献..........................................................19

1.需求分析

1.1系统开发思路

1.1.1图片浏览器概述

图片浏览器作为计算机使用者浏览各种格式图片的载体而存在,作为人们日使用计算机工作的一大可视化工具,图片浏览器正扮演着越来越重要的角色,我们日常生活中的任何格式的图片文件都必须通过图片浏览器才能进行浏览。

随着各种类型图片浏览器的不断更新换代,其功能也日益强大和完善,逐渐成为计算机使用者生活中越来越不可缺少的一部分。

1.1.2图片浏览器的功能特点

图片浏览器一般都具有打开jpg、gif、png、tiff等格式图片文件并对图片文件夹中的图片进行顺序浏览的功能。

一般的图片浏览器还有“上一页”、“下一页”的翻页功能和图片“放大”、“缩小”的浏览功能。

功能比较强大的图片浏览器还有文件选择的功能,功能更强大一些的图片浏览器可以对未打开的图片文件进行缩放预览效果的实现。

这次课程设计做的图片浏览器实现了上述的大部分功能,不过稳定性和精确度的问题还有待进一步完善。

1.1.3开发背景及意义

系统以图片浏览为中心,采用面向对象开发方法对图片浏览器内部组织结构、功能需求进行可行性分析,自顶向下逐层分解,主要分为系统分析、系统设计、系统实施、系统测试几个阶段。

其中有对现有图片浏览器的功能特点分析,对人们使用图片浏览器的意见分析,对系统实施的可行性分析,对实现过程、数据流程的分析,对系统结构与功能的设计,对系统逻辑结构的设计、用户界面的设计等等。

本系统主要提供了针对jpg、gif、png、tiff格式的图片进行浏览的功能,另外还实现了各种浏览图片的功能,如图片放大、缩小,上一页、下一页,文件打开等。

1.2系统开发相关开发技术

本系统主要用到了Swing、AWT等GUI技术进行控件设置和界面布局,使用了IO技术实现了文件选择的功能。

1.3方法的总体介绍

本系统的主要方法是对控件的添加及对其属性的设置,文件选择也是主要方法之一,事件响应方法是所有方法的核心。

2.概要设计

2.1设计的总体思想及算法描述

用一个类PicBrowseFrame实现总体框架的设计,定义菜单栏tempItem放置文件菜单File、编辑菜单Edit、帮助菜单help。

File下设置“打开”、“退出”两个菜单项,Edit下设置“复制”、“移动”两个菜单项,

分别用来实现“上一页”、“下一页”、“放大”“缩小”的功能。

这四个按钮定义在FlieChooser这个类中,它们的方法也在这个类中得到实现。

其中“上一页”的代码用“tag-=1;ImageIconig=newImageIcon(ParentPath+"\\"+files[tag]);”进行实现,与之相应的“下一页”的代码用“tag+=1;ImageIconig=newImageIcon(ParentPath+"\\"+files[tag]);”进行实现。

图片放大和图片缩小分别调用“picUpScanle()”和“picDownScanle()”两个方法进行实现。

文件选择主要用了“fileChooser.setCurrentDirectory(newFile("."));”。

2.2模块结构图

系统总功能概述:

打开jpg、gif、png、tiff格式图片文件,连续浏览图片。

实现上一页、下一页、放大、缩小图片基本功能,可以复制图片,浏览主界面提供预览缩略图。

图2—1用户功能模块图

2.3各功能模块的功能与处理流程描述

打开:

文件菜单下的一个菜单项,用来浏览文件,打开图片文件夹中的jpg、gif、png、tiff四种格式的图片。

复制:

这个功能是附加的,不难实现,其下面的移动并未被实现,移动后源文件没有被删除,所以两个菜单项的功能都是“复制”,复制时要选择保存路径和新的文件名及文件格式,严格说这个功能的实现是失败的。

帮助:

主要提供浏览器功能的相关信息,点击后会跳出一个frame,上面写着这些信息。

上一页:

按图片在目标文件夹中的排列顺序选择当前浏览图片的上一张图片。

下一页:

按图片在目标文件夹中的排列顺序选择当前浏览图片的下一张图片。

放大:

按照定义好的方法将原图片的width和height的size同时增大。

缩小:

按照定义好的方法将原图片的width和height的size同时缩小。

2.4界面设计

2.4.1各主要界面展示

系统初始化界面

图2—2系统初始化界面

文件选择界面

图2—3文件选择界面

图片选择界面

图2—4图片选择界面

图片浏览界面

图2—5图片浏览界面

图片复制界面

图2—6图片复制界面

帮助界面

图2—7帮助界面

2.4.2主要界面实现概述

初始化界面:

首先在frame顶部设置菜单栏,用“frame.setJMenuBar(menuBar);”实现,然后用“JMenuFile=newJMenu("文件");menuBar.add(File);”添加“文件”菜单,用类似的方式再添加“编辑”等菜单。

用“tempItem=newJMenuItem("打开");

tempItem.addActionListener(newLoadListener());File.add(tempItem);”添加“打开”菜单项,再用同样的方法添加其他菜单项。

最后用icons方法用数组定义图片“page.jpg”,最后用“lab=newJLabel(icons[0]);”实现frame对“page.jpg”的调用,在初始化界面显示经PS处理过的图片。

图片浏览界面:

整个界面用BorderLayout进行布局,在center中添加“imgPane”容器,用来盛放浏览的图片。

在frame的south中添加scanlePane,然后用scanlePane盛放四个Button,分别用来实现图片浏览器的四种主要功能。

3.详细设计

3.1模块程序设计

本系统共八个类,PicBrowseFrame是启动类,里面主要设置控件布局和各控件的监听器方法。

ExitListener用来实现退出的功能,AboutListener用来实现帮助的功能,CopyListener用来实现复制的功能,UpListener用来实现上一页的功能,DownListener用来实现下一页的功能。

FileChooser主要用来实现文件选择的功能,这各类里面除了定义了四个button外,还定义了图片预览的方法preViewMove,使用这个方法可以在frame的右下角同时预览五个小的略缩图。

还定义了方法picUpScanle(),用来实现图片的放大;picDownScanle();用来实现图片的缩小。

ImageFileView类主要用来指定和现实浏览图片文件的格式,ImageFilter类用来返回相关文件信息。

ImagePreview用来实现预览文件的形式。

imgVisible类主要用来实现图片的放大缩小和复制图片的功能。

Utils类主要用来返回打开图片文件的相关信息。

3.2重要代码展示

主类PicBrowseFrame

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassPicBrowseFrameextendsjavax.swing.JScrollPane{

privatestaticJFrameframe=newJFrame("图片浏览器——信管:

杨帆");顶层容器

publicstaticJPanelconPane;盛放4个button

privatestaticJMenuItemtempItem;菜单栏

publicstaticJLabellab;

privatestaticIcon[]icons;

FileChooserFileCh=newFileChooser();

publicvoidshowGUI(){

icons=newIcon[]{

newImageIcon("infoiconspage.jpg"),

newImageIcon("infoiconsabout.jpg"),

};

frame.setResizable(false);

conPane=(JPanel)frame.getContentPane();

conPane.setLocation(200,300);

conPane.setLayout(newBorderLayout());

JMenuBarmenuBar=newJMenuBar();

frame.setJMenuBar(menuBar);

文件菜单

JMenuFile=newJMenu("文件");

menuBar.add(File);

tempItem=newJMenuItem("打开");

tempItem.addActionListener(newLoadListener());

File.add(tempItem);

tempItem=newJMenuItem("退出");

tempItem.addActionListener(newExitListener());

File.add(tempItem);

文件菜单END

编辑菜单

JMenuEdit=newJMenu("编辑");

menuBar.add(Edit);

tempItem=newJMenuItem("复制");

tempItem.addActionListener(newCopyListener());

Edit.add(tempItem);

HELP

JMenu());

this.setSize();

DimensionframeSize=this.getSize();

DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();

frame.setLocation((screenSize.width-frameSize.width)2,(screenSize.(frame.EXIT_ON_CLOSE);

}

publicstaticvoidmain(Stringargs[]){

newPicBrowseFrame().showGUI();

}

文件菜单的监听事件

LoadListener

classLoadListenerimplementsjava.awt.event.ActionListener{

publicvoidactionPerformed(ActionEvente){

FileCh.FileChoosercr();

}

}

ExitListener

classExitListenerimplementsjava.awt.event.ActionListener{

publicvoidactionPerformed(ActionEvente){

System.exit(0);

}

}

End

编辑菜单的监听事件

classAboutListenerimplementsjava.awt.event.ActionListener{

publicvoidactionPerformed(ActionEvente){

JFramef=newJFrame("关于作品");

JLabell=newJLabel(icons[1]);

f.setMinimumSize(newDimension());

f.setSize();

DimensionframeSize=f.getSize();

DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();

f.setLocation((screenSize.width-frameSize.width)2,(screenSize.[]icons;

保存图片的大小

privatestaticintwidth=0;

privatestaticintig;

FileChooserFileCh=newFileChooser();

publicvoidFileChoosercr(){

frame=newJFrame("文件选择");

conPane=(JPanel)frame.getContentPane();

conPane.setLayout(newBorderLayout());

fileChooser=newJFileChooser();

添加FileFilter

fileChooser.setFileFilter(newImageFilter());

Acceptfilefromfilefilter.

fileChooser.addChoosableFileFilter(newImageFilter());

fileChooser.setAcceptAllFileFilterUsed(true);

Addcustomiconsforfiletypes.

fileChooser.setFileView(newImageFileView());

添加文件预览

fileChooser.setAccessory(newImagePreview(fileChooser));

fileChooser.setCurrentDirectory(newFile("."));修改***从当前的路径中进行选择

fileChooser.addActionListener(newFileChooserListener());

选择确定、取消按钮

intreturnVal=fileChooser.showOpenDialog(frame);

if(returnVal==JFileChooser.APPROVE_OPTION){

filename=fileChooser.getSelectedFile().getName();

System.out.println(filename);

filePath=fileChooser.getSelectedFile().getAbsolutePath();

ig=newImageIcon(filePath);

width=ig.getIconWidth();

(ig);

获取文件的父路径

ParentPath=fileChooser.getSelectedFile().getParent();

files=fileChooser.getSelectedFile().getParentFile().list();

这里加入图片的缩小浏览,采用滚动条

scanlePane.setBackground(newColor(16712));

scanlePane.setBounds(0,0,800,20);

scanlePane.setLayout(newGridLayout());

JButtondownPage=newJButton("下一页");

downPage.addActionListener(newDownPageListener());

JButtonupPage=newJButton("上一页");

upPage.addActionListener(newUpPageListener());

JButtonbig=newJButton("放大");

big.addActionListener(newbigListener());

JButtonsmall=newJButton("缩小");

small.addActionListener(newsmallListener());

scanlePane.add(upPage);上一页

scanlePane.add(downPage);下一页

scanlePane.add(big);放大

scanlePane.add(small);缩小

scanlePane.add(upPage);

preView();图片的缩小浏览

END

}

if(returnVal==JFileChooser.CANCEL_OPTION){

frame.dispose();布局

}

end

获取文件的文件路径

conPane.add(fileChooser);

frame.pack();

frame.setLocation(210,230);

frame.setVisible(true);

frame.dispose();

}

这里加入图片的缩小浏览,采用滚动条

privatevoidpreView(){

intlength=tag+5;

intj=0;

for(inti=tag;i

if(newFileNameFilter().acceptfile(files[i])){

try{

ImageIconiconScanle=newImageIcon(ParentPath+"\\"+files[i]);

ImageIconscaleIcon=newImageIcon(newimgVisible().getScaledImage(iconScanle.getImage()));

label[j]=newJLabel(scaleIcon);

scanlePane.add(label[j]);

j++;

PicBrowseFrame.conPane.add(scanlePane,BorderLayout.SOUTH);

}catch(java.lang.NullPointerExceptione){}

}elselength+=1;

}

}

图片的缩小浏览的滚动

privatevoidpreViewMove(inttag){

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2