JAVA图片浏览器毕业课程设计报告.docx
- 文档编号:29662894
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:22
- 大小:562.52KB
JAVA图片浏览器毕业课程设计报告.docx
《JAVA图片浏览器毕业课程设计报告.docx》由会员分享,可在线阅读,更多相关《JAVA图片浏览器毕业课程设计报告.docx(22页珍藏版)》请在冰豆网上搜索。
JAVA图片浏览器毕业课程设计报告
学号
课程设计报告
课程名称Java课程设计
题目
实现图片浏览器功能的Java程序设计
学部
专业
班级
姓名
指导教师
2011
年
1
月
7
日
Java课程设计任务书
题目:
实现图片浏览器功能的Java程序设计
1.课程设计教学条件要求
JDK1.6+Eclipse/NetBeans/JBuilder+SQLServer2000/MySQL
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下设置“复制”、“移动”两个菜单项,help下设置“关于作者”一个菜单项。
PicBrowseFrame下面放置upPage、downPage、big、small四个JButton
分别用来实现“上一页”、“下一页”、“放大”“缩小”的功能。
这四个按钮定义在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("info/icons/page.jpg"),
newImageIcon("info/icons/about.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
JMenuhelp=newJMenu("帮助");
menuBar.add(help);
tempItem=newJMenuItem("关于作品");
tempItem.addActionListener(newAboutListener());
help.add(tempItem);
//END
//显示图片
JPanelimgPane=newJPanel();
imgPane.setLayout(newBorderLayout());
lab=newJLabel(icons[0]);
imgPane.add(lab);
conPane.add(imgPane,BorderLayout.CENTER);
//END
frame.setMinimumSize(newDimension());
this.setSize();
DimensionframeSize=this.getSize();
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
frame.setVisible(true);
frame.setDefaultCloseOperation(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.height-frameSize.height)/2);
f.add(l);
f.setSize();
f.setVisible(true);
}
}
classCopyListenerimplementsjava.awt.event.ActionListener{
publicvoidactionPerformed(ActionEvente){
JFileChoosersaveFile=newJFileChooser();
intresult=saveFile.showSaveDialog(frame);
StringsavePath=saveFile.getSelectedFile().getAbsolutePath();
if(result==JFileChooser.APPROVE_OPTION){
newimgVisible().PicCopy(FileChooser.filePath,savePath);
}else{
}
}
}
classUpListenerimplementsjava.awt.event.ActionListener{
publicvoidactionPerformed(ActionEvente){
FileCh.picUpScanle();
}
}
//下一页的监听事件
classDownListenerimplementsjava.awt.event.ActionListener{
publicvoidactionPerformed(ActionEvente){
FileCh.picDownScanle();
}
}
//END
}
文件选择类FileChooser
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.io.File;
//importjava.util.*;
importjavax.swing.*;
//importjavax.swing.JMenu;
//importScreenProtect.RunThread;
publicclassFileChooser{
publicstaticJFrameframe;//文件选择
publicstaticJPanelconPane;//盛放按钮
publicstaticJFileChooserfileChooser;//文件选择
privateJPanelscanlePane=newJPanel();
privatestaticString[]files;
privatestaticStringParentPath;
privatestaticStringfilename;
//privatestaticJLabellabel1;修改
publicstaticStringfilePath;
//privateintskip=0;修改
privatestaticinttag=0;
privateJLabel[]label=newJLabel[5];
//privatestaticIcon[]icons;
//保存图片的大小
privatestaticintwidth=0;
privatestaticintheigth=0;
privatestaticImageIconig;
//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("."));//修改***从当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 图片 浏览器 毕业 课程设计 报告