java电子相册实习报告及代码文档格式.docx
《java电子相册实习报告及代码文档格式.docx》由会员分享,可在线阅读,更多相关《java电子相册实习报告及代码文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
最多2人为一组,每组一个课题(可根据课题工作量大小,合理分配人数),每组设组长一名,负责该组设计工作的协调、分工等。
设计过程:
2.分析设计准备阶段(按组讨论、对系统功能进行分析,并进行明确分工);
3.编程调试阶段(绘制流程图,编制源程序;
上机调试,修改程序)
三、考核内容和方式
1、在设计期间,学生要按时上机,设计结束根据记录的设计材料整理成设计说明书。
设计说明书中应写下设计中的主要收获,要求对问题有一定的分析,文字简短明确流畅。
2、结合学生的动手能力,独立分析解决问题的能力和创新精神,设计成绩由指导教师根据考勤、设计说明书质量分优、良、中、及格和不及格五等。
四、设计内容
本次实践教学采用学生集中在学校网络机房上机,指导老师指导的形式。
要求学生用所学的面向对象程序设计语言——JAVA来编写程序,实现特定功能,以加深对面向对象程序设计这个概念的理解。
这次我编写的程序是电子相册,主要功能是实现本次设计的图片查看器实现了在用户选定的文件目录下循环浏览指定后缀的图片文件,并且可以对选择的图片进行放大,缩小,左旋,右旋,另存,彻底删除等操作。
二、程序代码
一、程序截图
importjava.awt.*;
importjava.awt.event.*;
importjava.awt.geom.*;
importjava.awt.image.*;
importjavax.swing.*;
importjavax.swing.filechooser.*;
importjava.io.*;
importjava.applet.*;
publicclasspicextendsjavax.swing.JFrame{
Imagepic;
//查看的图片
BufferedImagebufImage;
//用于显示的缓冲区图像
BufferedImageoriBufImage;
//原始缓冲区图像
Graphics2DbufImageG;
//缓冲区图像的图形环境
Stringpath,filename,dir;
//需要查看图片的路径
String[]pics;
//目录下所有指定格式的图片
intpicWidth,picHeight;
//图片大小
inti=0;
finaldoubleZOOM_PERCENT=0.15;
//每次放大和缩小的倍率
finalStringFILE_TYPE="
.jpg"
;
booleanhasPic,isangled;
doublescaleX;
//图像水平方向的缩放因子
doublescaleY;
//图像竖直方向的缩放因子
doubleradius;
//旋转角度
FilterfilterJpg;
publicpic(){
initComponents();
}
@SuppressWarnings("
unchecked"
)
//<
editor-folddefaultstate="
collapsed"
desc="
GeneratedCode"
>
privatevoidinitComponents(){
buttonGroup1=newjavax.swing.ButtonGroup();
buttonGroup2=newjavax.swing.ButtonGroup();
jButton10=newjavax.swing.JButton();
openbtn=newjavax.swing.JButton();
zoominbtn=newjavax.swing.JButton();
zoomoutbtn=newjavax.swing.JButton();
oripicbtn=newjavax.swing.JButton();
prebtn=newjavax.swing.JButton();
nextbtn=newjavax.swing.JButton();
angleleftbtn=newjavax.swing.JButton();
anglerightbtn=newjavax.swing.JButton();
deletebtn=newjavax.swing.JButton();
savebtn=newjavax.swing.JButton();
exitbtn=newjavax.swing.JButton();
pathInfo=newjavax.swing.JLabel();
jMenuBar1=newjavax.swing.JMenuBar();
jMenu1=newjavax.swing.JMenu();
jMenu2=newjavax.swing.JMenu();
jButton10.setText("
jButton10"
);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
openbtn.setText("
打开"
openbtn.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEventevt){
openbtnActionPerformed(evt);
});
openbtn.addKeyListener(newjava.awt.event.KeyAdapter(){
publicvoidkeyPressed(java.awt.event.KeyEventevt){
openbtnKeyPressed(evt);
zoominbtn.setText("
放大"
zoominbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
zoominbtnMouseClicked(evt);
zoomoutbtn.setText("
缩小"
zoomoutbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
publicvoidmouseClicked(java.awt.event.MouseEventevt){
zoomoutbtnMouseClicked(evt);
oripicbtn.setText("
还原"
oripicbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
oripicbtnMouseClicked(evt);
prebtn.setText("
上一张"
prebtn.addMouseListener(newjava.awt.event.MouseAdapter(){
prebtnMouseClicked(evt);
nextbtn.setText("
下一张"
nextbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
nextbtnMouseClicked(evt);
angleleftbtn.setText("
左旋"
angleleftbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
angleleftbtnMouseClicked(evt);
anglerightbtn.setText("
右旋"
anglerightbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
anglerightbtnMouseClicked(evt);
deletebtn.setText("
删除"
deletebtn.addMouseListener(newjava.awt.event.MouseAdapter(){
deletebtnMouseClicked(evt);
savebtn.setText("
另存为"
savebtn.addMouseListener(newjava.awt.event.MouseAdapter(){
savebtnMouseClicked(evt);
exitbtn.setText("
退出"
exitbtn.addMouseListener(newjava.awt.event.MouseAdapter(){
exitbtnMouseClicked(evt);
jMenu1.setText("
File"
jMenuBar1.add(jMenu1);
jMenu2.setText("
Edit"
jMenuBar1.add(jMenu2);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayoutlayout=newjavax.swing.GroupLayout(getContentPane());
getContentPa