java课程设计 图片查看器_第1页
java课程设计 图片查看器_第2页
java课程设计 图片查看器_第3页
java课程设计 图片查看器_第4页
java课程设计 图片查看器_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

22oripicbtn.setEnabled(true);//line8,将图片顺时针旋转publicvoidangleright(){isangled=true;radius+=Math.PI/2;//设置每次右旋45度角repaint();oripicbtn.setEnabled(true);}//图片删除publicvoiddelete(){Filef=newFile(path+"\\"+pics[i]);if(f.exists())f.delete();else{pathInfo.setForeground(Color.BLACK);pathlnfo.setText(“文件不存在");}for(intj=i;j<pics.length-1;j++)pics[j]=pics[j+1];if(i==pics.length-1)i=0;dir=path+"\\"+pics[i];loadImage(dir);}//line9,退出图片查看器publicvoidexit(){hasPic=false;System.exit(1);//linelO,加载图像publicvoidloadImage(StringfileName){pic=this.getToolkit().getImage(fileName);//取得图像MediaTrackermt=newMediaTracker(this);//实例化媒体加载器,跟踪多种媒体对象状态mt.addImage(pic,O);//增加图像到加载器中picWidth=pic.getWidth(this);picHeight=pic.getHeight(this);try{mt.waitForAll();//等待图片加载}catch(Exceptione){e.printStackTrace();//输出出错信息}oriBufImage=newBufferedImage(pic.getWidth(this),pic.getHeight(this),BufferedImage.TYPE_INT_ARGB);//创建原始缓冲区图像bufImage=oriBufImage;buflmageG=buflmage.createGraphics();//创建bufImage的图形环境bufImageG.drawImage(pic,O,O,this);//传输源图像数据到缓冲区图像中repaint();//重绘组件}//line11,图像转换处理publicvoidpicTrans(){if(bufImage==null)return;//如果bufImage为空则直接返回BufferedImagefilteredBufImage=newBufferedImage((int)(pic.getWidth(this)*scaleX),(int)(pic.getHeight(this)*scaleY),BufferedImage.TYPE_INT_ARGB);//过滤后的图像AffineTransformtransform=newAffineTransform();//2D仿射变换transform.setToScale(scaleX,scaleY);//设置仿射变换的比例因子AffineTransformOpimageOp=newAffineTransformOp(transform,null);//创建仿射变换操作对象imageOp.filter(oriBufImage,filteredBufImage);//过滤图像,目标图像在filteredBuflmagebufImage=filteredBufImage;//让用于显示的缓冲区图像指向过滤后的图像}//重写update(),消除闪烁publicvoidupdate(Graphicsg){this.paint(g);}//linel2,图片绘制publicvoidpaint(Graphicsg){intpanelWidth=this.getWidth();intpanelHeight=this.getHeight();super.paint(g);//判断是否需要旋转图片if(bufImage!=null&&isangled==true){Graphics2Dg2=(Graphics2D)g;AffineTransformtx=newAffineTransform();//按照角度,根据中心旋转tx.rotate(radius,panelWidth/2,panelHeight/2);g2.setTransform(tx);picTrans();g2.drawImage(bufImage,(panelWidth-bufImage.getWidth())/2,(panelHeight-bufImage.getHeight())/2,this);//绘制图片pathInfo.setForeground(Color.BLACK);pathInfo.setText(path+"\\"+filename);isangled=false;}elseif(bufImage!=null){Graphics2Dg2=(Graphics2D)g;picTrans();g2.drawImage(bufImage,(panelWidth-bufImage.getWidth())/2,(panelHeight-bufImage.getHeight())/2,this);//绘制图片}}//linel3,文件类型过滤publicclassFilterimplementsFilenameFilter{Stringextension;Filter(Stringextension){this.extension=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论