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 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 DefaultToolkit().getScreenSize().width;
    static int DefaultToolkit().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<Image> list=new LinkedList<Image>();
    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 SelectedFile().toString())).getImage();                   
                    CurrentDirectory().toString()+Property("file.separator");
                    placeAll("\\\\","/");//路径转换                   
                    root=new File(newPath);           
                    img0=img;                   
                    paint();
                    findImage(root);     
                   
                }
               
           
                } catch (Exception evt) {} 
Toolkit toolkit = DefaultToolkit();
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){
            WheelRotation()<0){//如果鼠标滚轮向上滚动,则放大图片
               
              }else{//否则缩小图片
                 
                  }
           
        }
   
    });
               
    }
   
   
           
         
public void findImage(File dir){       
    File[] files=dir.listFiles();//得到当前路径下的所有文件和文件夹                   
        for(int i=0; i<files.length; i++){               
            Str=new String[files.length];
            Str[i]=files[i].getAbsolutePath();//将路径和文件名存入字符串数组         
            //使用链表替代数组
            if(Str[i].endsWith(".jpg")||Str[i].endsWith(".gif")||Str[i].endsWith(".png")==true){
            list.add(index,(new ImageIcon(Str[i])).getImage());
              index++;
            }         
}       
}
//画图的算法有点问题????
static class ImgsPanel extends JPanel{       
    private static final long serialVersionUID = 1L;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。