java照片查看器源代码

package ioStream;import java.awt.AWTEvent;import java.awt.Color;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.Toolkit;import java.awt.event.AWTEventListener;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.MouseWheelEvent;import java.awt.event.MouseWheelListener;import java.awt.geom.AffineTransform;import java.io.File;import java.util.LinkedList;import java.util.List;import javax.swing.ImageIcon;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.Timer;import javax.swing.UIManager;import javax.swing.filechooser.FileNameExtensionFilter;/* 该代码意在实现照片查看器的功能* 当按下“右箭头 ”时浏览下一张图片* 当按下“左箭头 时浏览上一张图片* 实现循环浏览* 当按下Ecs时推出全屏浏览模式* 当按下 CTRL+“上箭头”时,全屏显示* 只能浏览指定文件夹下面的所支持格式的图片(gif,jpg,png )*链表的大小与他的最大角标相隔 1*/public class PicsViewer static JFrame frame0;/原始的全屏显示的窗口static int SWidth=Toolkit.getDefaultToolkit().getScreenSize().width;static int SHeight=Toolkit.getDefaultToolkit().getScreenSize().height;static Image icon=(new ImageIcon(PicsViewer/img.png).getImage();/框架图标JFileChooser chooser; /声明一个文件选择器对象static JPanel imgjp;static Image img0=(new ImageIcon(image/cat.png).getImage();/默认的一张图片File files; static int j=0;static int k=0;static File root;static int i=0; Timer T00;String Str;/获取文件名字符串static Image img;static int xCoor,yCoor;/打印图片的左上角坐标static int PWidth,PHeight;/图片的宽高(小于屏幕宽高的时候的)static int PWidth0,PHeight0;/图片宽高大于屏幕宽高的时候的图片宽高String CPath;/直接获得的路径String newPath;/经过转换后的路径static List list=new LinkedList();int index=0;static int index0=0;static double xCoor0=1,yCoor0=1;/图片在 X 轴缩放的倍数,图片在 Y 轴的缩放倍数;static boolean isFull=true;/是否全屏显示static int now;/当前正在使用的图片public PicsViewer()frame0=new JFrame();imgjp=new ImgsPanel();imgjp.setBackground(new Color(51,51,51);frame0.add(imgjp);frame0.setTitle(PicsViewer1.0);frame0.setSize(SWidth,SHeight);frame0.setUndecorated(isFull);frame0.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/不设置窗口的位置,是因为窗口默认的位置就是在桌面的左上角frame0.setIconImage(icon);/设置窗口图标frame0.setVisible(true);/* 程序一启动就弹出文件选择对话框让用户选择所要浏览的图片*/try UIManager.setLookAndFeel(com.sun.java.swing.plaf.windows.WindowsLookAndFeel);/设置为当前操作系统的外观 JFileChooser chooser = new JFileChooser();chooser.setDialogTitle(请选择要查看的图片);chooser.addChoosableFileFilter(new FileNameExtensionFilter(常见图片格式, jpg, gif, png);chooser.showOpenDialog(frame0);int returnVal = chooser.showOpenDialog(frame0);if(returnVal = JFileChooser.APPROVE_OPTION) img=(new ImageIcon(chooser.getSelectedFile().toString().getImage();CPath=chooser.getCurrentDirectory().toString()+System.getProperty(file.separator);newPath=CPath.replaceAll(,/);/路径转换 root=new File(newPath);img0=img; imgjp.repaint();findImage(root); catch (Exception evt) Toolkit toolkit = Toolkit.getDefaultToolkit(); toolkit.addAWTEventListener(new ShortcutKeyListener(), AWTEvent.KEY_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK| AWTEvent.WINDOW_EVENT_MASK);/*添加键盘监听事件,当点击键盘上的方向键右键时浏览下一张图片,点击左箭头浏览上一张,当按下上箭头时对当前图片进行放大操作* 当按下下箭头时,对当前浏览的图片进行缩小操作* 同时添加鼠标滚轮监听事件,也对当前图片进行缩放操作* */imgjp.addMouseWheelListener(new MouseWheelListener()public void mouseWheelMoved(MouseWheelEvent e)if(e.getWheelRotation()SWidth|PHeightSHeight) yCoor0=SHeight/(PHeight*1.0);PHeight0=SHeight;PWidth0=(int)(PWidth*yCoor0);xCoor0=yCoor0; xCoor=(SWidth-PWidth0)/2;yCoor=-(PHeight0-SHeight)/2;Trans.scale(xCoor0,yCoor0);/对图片的缩放操作/ G2.setTransform(Trans); G2.drawImage(img0,xCoor,yCoor,PWidth0,PHeight0,this); static class Tim implements ActionListenerpublic void actionPerformed(ActionEvent e)/看来变量最好不要用相同的变量名img0=(Image)(list.get(index0);index0+;if(index0=list.size()index0=0;img0=(Image)(list.get(index0);index0+;imgjp.repaint();imgjp.repaint();static class ShortcutKeyListener implements AWTEventListener public void eventDispatched(AWTEvent e) if (e.getClass() = KeyEvent.class) / 被处理的事件是键盘事件.KeyEvent keyEvent = (KeyEvent) e;if (keyEvent.getID() = KeyEvent.KEY_PRESSED) keyPressed(keyEvent); else if (keyEvent.getID() = KeyEvent.KEY_RELEASED) keyReleased(keyEvent); /* 当只有一张图片是抛出异常,不能使用左右方向键,待解决*/private void keyPressed(KeyEvent e) switch(e.getKeyCode()case KeyEvent.VK_RIGHT: if(list.size()!=1)img0=(Image)(list.get(index0);now=index0;index0+;if(index0=list.size()-1)index0=0;img0=(Image)(list.get(index0);now=index0;index0+;imgjp.repaint();imgjp.repaint();elseimg0=(Image)(list.get(index0);imgjp.repaint();break;case KeyEvent.VK_LEFT: if(list.size()!=1)if(index00)img0=(Image)(list.get(index0);now=index0;index0-;imgjp.repaint(); if(index00)index0=list.size()-1;img0=(Image)(list.get(index0);now=index0;index0-;imgjp.repaint(); elseindex0=list.size()-1;img0=(Image)(list.get(index0);now=index0;index0-;imgjp.repaint();break;case KeyEvent.VK_ESCAPE:isFull=false;frame0=new JFrame();imgjp=new ImgsPanel();imgjp.setBackgroun

java图片查看器下载_java照片查看器源代码相关推荐

  1. java图片上传下载_java实现文件的上传和下载

    1. servlet 如何实现文件的上传和下载? 1.1上传文件 参考自:http://blog.csdn.net/hzc543806053/article/details/7524491 通过前台选 ...

  2. java图片上传下载_java web 文件上传与下载

    组件工作流程:WEB服务器request ServletFil eupLoad DiskFileItem Factory代表普通字段的FileItem代表上传文件1FileItem代表上传文件2Fil ...

  3. java图片上传下载_Java中文件上传下载 --使用Minio

    Minio模板类: @RequiredArgsConstructor public class MinioTemplate implements InitializingBean { private ...

  4. Win10图片打开方式没有“Windows照片查看器”,如何找回?

    Win10图片打开方式没有"Windows照片查看器",如何找回? 如果你是全新安装的Win10正式版,那么就会发现当在图片上点击右键时,"打开方式"菜单里熟悉 ...

  5. 打开微信另存的 jpg 图片时,提示“Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足”

    问题描述: 打开微信另存的 jpg 图片或者通过微信拍照上传的图片时,提示"Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足",出现以下信息 解决方案: 目 ...

  6. Win10系统图片打开方式恢复默认照片查看器

    15号监场结束,想说马上到了寒假长期学习的时候了,如果电脑用的还是不舒服的话,会影响学习的,所以就想着重新装一遍系统,方便学习,装完后驱动完成,各方面都没有问题,但是在17号要进行专业课复习时候需要用 ...

  7. 解决Win10图片打开方式没有“Windows照片查看器”问题

    1.打开注册表编辑器(Win+R,Regedit),定位至(建议修改前备份注册表): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Photo Viewe ...

  8. 怎么在Windows10中找回Windows7的照片查看器(Windows 照片查看器)win10新的照片查看器太难用了

    背景 win10用了 "照片"(Photos)替代 "Windows 照片查看器"(Windows Photo Viewer) 这个 "照片" ...

  9. java 图片服务器 上传_Java向服务器上传图片

    在比较绚丽多彩的网站或者业务逻辑比较丰富的程序设计过程中,图片的相关操作时必不少的,尤其时图片的上传.还没有彻底摆脱纸质办公可能需要将纸质的文件备份上传,网站的建设可能需要上传用户头像.图片描述等等, ...

最新文章

  1. bcompiler php,php_bcompiler.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  2. css美化单选款、复选框
  3. ps2020的antlib文件在哪_ant design pro 新增页面
  4. Py之scikit-learn:机器学习Sklearn库的简介、安装、使用方法(ML算法如何选择)、代码实现之详细攻略
  5. Boost:bimap双图property地图的测试程序
  6. 我感觉我恰似一个呆逼
  7. 数据结构 - 栈(链表实现栈的入栈出栈)
  8. 新兴的多媒体格式——MXF 文件格式分析 和简介
  9. python bokeh 示例_Python bokeh.plotting.figure.arc()用法及代码示例
  10. 如何找mysql8.0的rpm安装包_centos7 mysql8.0 RPM软件包方式安装
  11. python高级函数、将函数作为变量、返回函数_从函数外部返回变量名,作为python函数内部的字符串...
  12. LeetCode 392 判断子序列
  13. C# “配置系统未能初始化”
  14. 【华为二面】2020/3/25_华为第二次技术面试_45分钟
  15. syn重发_SYN***原理及处理
  16. 一个“蝇量级” C 语言协程库 -- Protothreads
  17. 自己动手编写CSDN博客备份工具-blogspider之源码分析(2)
  18. 什么是跨域问题?跨域解决问题
  19. 爱奇艺大裁员,互联网的苦日子来了…
  20. 备份Ubuntu12.04 并制作成iso安装文件

热门文章

  1. Java程序员的日常—— 垃圾回收中引用类型的作用
  2. ISO8583报文协议详解
  3. birt报表的行隐藏和列隐藏以及分组显示
  4. Android Studio1.4.x JNI开发基础 - 简单实例
  5. Oracle 摘去数据块的面纱
  6. weblogic各个版本对JDK和Spring的支持度
  7. 网络通信程序做个瞬间的扫描判断
  8. 揭秘也门仆人阶层:没食物时吃亲人尸体
  9. 用C++访问SQL Server 2000的实例
  10. 新手关于如何看编程经典书的一些疑惑?