- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA课程期末论文
JAVA课程期末论文
学号: 姓名:刘倩
班级:科技2班
日期:2013/12/8
一、题目:图片浏览器
二、选题依据
相比较文字内容,图片无疑会较文字内容有更强的渲染力及表现力,相同的内容人们也更喜欢欣赏图片。查看图片自然要使用图片浏览器,加上其具有极大的实用性,所以这次实验选择利用java语言做一个用户图形界面的图像浏览器,可以对符合格式的图像文件进行一些基本操作,如:放大缩小,旋转等。
三、分析
3.1预期功能:
文件选择:可以选择任意文件夹里的任意图片文件浏览。
文件保存:保存当前正在浏览的文件,可以保存到任意文件夹中。
图片翻页:可以对当前图片同一目录下的其他图片进行循环浏览。
图片放缩:对当前浏览的图片文件进行同比放缩。
图片旋转:对当前浏览的图片以当前的大小进行旋转。
幻灯播放:自动播放该文件夹中的所有图片。可以暂停和继续。
3.2初步设想:
文件选择和文件保存通过JFileChooser实现,并将该文件夹的所有图片文件都保存到File[]中,一边对图片进行后续操作。图片翻页则是通过变量tag标记的当前文件在File[]中的位置来寻找到File[tag+1]和File[tag-1]。图片的放缩主要是通过Image的getScaledInstance(int width, int height, int hints)方法来获得此图像的放缩版本的。图片旋转则是通过Graphics2D类中的rotate(double theta, double x, double y)方法实现的。幻灯播放则是通过javax.swing.Timer的计数功能来实现的。
开发
4.1界面
图形界面关系:
frame是顶层容器,所有组件均添加在frame里。
menubar是菜单项,含有JMenu File,JMenu Edite和JMenu About。File里设置了JMenuItem用于实现选择文件夹,保存和退出。Edite里设置了JMenuItem用于实现放大缩小,上页下页,幻灯播放和旋转。About里设置了JMenuItem用于实现一些信息的显示。
Shortcut是JPanel,包含了三个按钮,分别用来实现上页下页和幻灯播放,把shortcut放在frame的south位置是为了使这三个功能更便于使用,也就是快捷按钮。
View是JPanel,仅仅是为了容纳imglab,而JLabel imglab是作为显示图片的容器存在的。所以的放缩,翻页等的处理结果都将显示在imglab上。
f是JFrame,是用于实现幻灯播放的独立框架,包含有JPanel j和p。J是用来放置“暂停”“继续”的JButton的。P是用来放置显示幻灯片的JLabel play。
4.2功能模块
变量解读:
private static String filepath;
//当前图片的文件绝对路径
private static String filename;
//当前图片的文件名
private static java.io.File[] files;
//存放当前文件所在文件夹中的所有图片文件
private static ImageIcon ig;
//当前现实的文件
private static int tag,degree;
//tag是标记当前图片在File[]中下标的变量,degree是记录当前文件旋转角度的变量,degree=0,则当前图片没有旋转,degree=1则顺时针旋转90°。
private static int init_h=400,width=400,highth=400;
//init_h表示初始打开文件是的高度,width和highth用于记录缩放后的图片尺寸
private static double rate;
//记录当前正在浏览文件的宽高比,以实现文件的等比缩放
private Timer timer;
//幻灯播放是的计时器
选择文件:
文件选择功能是在ImgFile类里实现的,主要使用了java提供的JFileChooser类。在OpenListener中的actionPerformed方法里实现了选择文件后的系列操作。按下“确定”按钮后filepath记录当前选中文件的绝对路径,利用;filename为当前选中文件的文件名;files则是包含当前文件夹中所有图像文件的文件数组,此时利用了另一个类MyFileNameFilter实现。MyFileNameFilter是通过判断文件后缀来判断文件是否为图像文件。
文件保存:
原创力文档


文档评论(0)