java照片查看器源代码

上传人:大米 文档编号:496882532 上传时间:2023-05-20 格式:DOC 页数:7 大小:43.50KB
返回 下载 相关 举报
java照片查看器源代码_第1页
第1页 / 共7页
java照片查看器源代码_第2页
第2页 / 共7页
java照片查看器源代码_第3页
第3页 / 共7页
java照片查看器源代码_第4页
第4页 / 共7页
java照片查看器源代码_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《java照片查看器源代码》由会员分享,可在线阅读,更多相关《java照片查看器源代码(7页珍藏版)》请在金锄头文库上搜索。

1、packageioStream;importjava.awt.AWTEvent;importjava.awt.Color;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Image;importjava.awt.Toolkit;importjava.awt.event.AWTEventListener;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyEvent;importja

2、va.awt.event.MouseWheelEvent;importjava.awt.event.MouseWheelListener;importjava.awt.geom.AffineTransform;importjava.io.File;importjava.util.LinkedList;importjava.util.List;importjavax.swing.ImageIcon;importjavax.swing.JFileChooser;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.T

3、imer;importjavax.swing.UIManager;importjavax.swing.filechooser.FileNameExtensionFilter;/*该代码意在实现照片查看器的功能*当按下“右箭头”时浏览下一张图片*当按下“左箭头时浏览上一张图片*实现循环浏览*当按下Ecs时推出全屏浏览模式*当按下CTRL+“上箭头”时,全屏显示*只能浏览指定文件夹下面的所支持格式的图片(gif,jpg,png)*链表的大小与他的最大角标相隔1*/publicclassPicsViewerstaticJFrameframe。;/原始的全屏显示的窗口staticintSWidth=T

4、oolkit.getDefaultToolkit().getScreenSize().width;staticintSHeight=Toolkit.getDefaultToolkit().getScreenSize().height;staticImageicon=(newlmagelcon(,PicsViewer/img.png,).getlmage();框架图标JFileChooserchooser;/声明一个文件选择器对象staticJPanelimgjp;staticImageimgO=(newlmagelcon(image/cat.png).getlmage();默认的一张图片Fil

5、efiles;staticintj=O;staticintk=O;staticFileroot;staticinti=O;TimerTOO;StringStr;/获取文件名字符串staticlmageimg;staticintxCoor,yCoor;打印图片的左上角坐标staticintPWidth,PHeight;图片的宽高(小于屏幕宽高的时候的)staticintPWidth0,PHeight0;图片宽高大于屏幕宽高的时候的图片宽高StringCPath;/直接获得的路径StringnewPath;/经过转换后的路径staticListlist=newLinkedList();intind

6、ex=0;staticintindex0=0;staticdoublexCoor0=1,yCoor0=1;图片在X轴缩放的倍数,图片在Y轴的缩放倍数;staticbooleanisFull=true;是否全屏显示staticintnow;/当前正在使用的图片publicPicsViewer()frame0=newJFrame();imgjp=newlmgsPanel();imgjp.setBackground(newColor(51,51,51);frame0.add(imgjp);frame0.setTitle(PicsViewer1.0);frame0.setSize(SWidth,SHe

7、ight);frame0.setUndecorated(isFull);frame0.setDefaultCloseOperation(JFrame.EXlT_ON_CLOSE);/不设置窗口的位置,是因为窗口默认的位置就是在桌面的左上角frame0.setIconImage(icon);设置窗口图标frame0.setVisible(true);/*程序一启动就弹出文件选择对话框让用户选择所要浏览的图片*/tryUIManager.setLookAndFeel(com.sun.java.swing.plaf.windows.WindowsLookAndFeel);设置为当前操作系统的外观JF

8、ileChooserchooser=newJFileChooser();chooser.setDialogTitle(请选择要查看的图片);chooser.addChoosableFileFilter(newFileNameExtensionFilter(常见图片格式,jpg,gif,png);chooser.showOpenDialog(frame0);intreturnVal=chooser.showOpenDialog(frame0);if(returnVal=JFileChooser.APPROVE_OPTION)img=(newImageIcon(chooser.getSelecte

9、dFile().toString().getImage();CPath=chooser.getCurrentDirectory().toString()+System.getProperty(file.separator);newPath=CPath.replaceAII(,/);路径转换root=newFile(newPath);img0=img;imgjp.repaint();findImage(root);catch(Exceptionevt)Toolkittoolkit=Toolkit.getDefaultToolkit();toolkit.addAWTEventListener(ne

10、wShortcutKeyListener(),AWTEvent.KEY_EVENT_MASK|AWTEvent.MOUSE_EVENT_MASK|AWTEvent.WINDOW_EVENT_MASK);/*添加键盘监听事件,当点击键盘上的方向键右键时浏览下一张图片,点击左箭头浏览上一张,当按下上箭头时对当前图片进行放大操作*当按下下箭头时,对当前浏览的图片进行缩小操作*同时添加鼠标滚轮监听事件,也对当前图片进行缩放操作*/imgjp.addMouseWheelListener(newMouseWheelListener()publicvoidmouseWheelMoved(MouseWheel

11、Evente)if(e.getWheeIRotation()0)如果鼠标滚轮向上滚动,则放大图片else否则缩小图片);publicvoidfindImage(Filedir)Filefiles=dir.listFiles();得到当前路径下的所有文件和文件夹for(inti=0;ifiles.length;i+)Str=newStringfiles.length;Stri=filesi.getAbsolutePath();将路径和文件名存入字符串数组/使用链表替代数组if(Stri.endsWith(.jpg)|Stri.endsWith(.gif)|Stri.endsWith(.png)=

12、true)list.add(index,(newImageIcon(Stri).getImage();index+;/画图的算法有点问题?staticclassImgsPanelextendsJPanelprivatestaticfinallongserialVersionUID=1L;publicvoidpaintComponent(Graphicsg)super.paintComponent(g);Graphics2DG2=(Graphics2D)g;AffineTransformTrans=newAffineTransform();PWidth=img0.getWidth(null);P

13、Height=img0.getHeight(null);if(PWidth=SWidth&PHeightSWidth|PHeightSHeight)yCoorO=SHeight/(PHeight*1.O);PHeightO=SHeight;PWidthO=(int)(PWidth*yCoorO);xCoorO=yCoorO;xCoor=(SWidth-PWidthO)/2;yCoor=-(PHeightO-SHeight)/2;Trans.scale(xCoor0,yCoor0);对图片的缩放操作/G2.setTransform(Trans);G2.drawImage(img0,xCoor,y

14、Coor,PWidth0,PHeight0,this);staticclassTimimplementsActionListenerpublicvoidactionPerformed(ActionEvente)/看来变量最好不要用相同的变量名img0=(Image)(list.get(index0);index0+;if(index0=list.size()index0=0;img0=(Image)(list.get(index0);index0+;imgjp.repaint();imgjp.repaint();staticclassShortcutKeyListenerimplementsAWTEventListenerpublicvoideventDispatched(AWTEvente)if(e.getClass()=KeyEvent.class)/被处理的事件是键盘事件.KeyEventkeyEvent=(KeyEvent)e;if(keyEvent.getID()=KeyEvent.KEY_PRESSED)k

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号