java图片查看器下载_java照片查看器源代码
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;/* 該代碼意在實現(xiàn)照片查看器的功能* 當(dāng)按下“右箭頭 ”時瀏覽下一張圖片* 當(dāng)按下“左箭頭 時瀏覽上一張圖片* 實現(xiàn)循環(huán)瀏覽* 當(dāng)按下Ecs時推出全屏瀏覽模式* 當(dāng)按下 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();/默認的一張圖片F(xiàn)ile 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;/經(jīng)過轉(zhuǎn)換后的路徑static List list=new LinkedList();int index=0;static int index0=0;static double xCoor0=1,yCoor0=1;/圖片在 X 軸縮放的倍數(shù),圖片在 Y 軸的縮放倍數(shù);static boolean isFull=true;/是否全屏顯示static int now;/當(dāng)前正在使用的圖片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);/不設(shè)置窗口的位置,是因為窗口默認的位置就是在桌面的左上角frame0.setIconImage(icon);/設(shè)置窗口圖標frame0.setVisible(true);/* 程序一啟動就彈出文件選擇對話框讓用戶選擇所要瀏覽的圖片*/try UIManager.setLookAndFeel(com.sun.java.swing.plaf.windows.WindowsLookAndFeel);/設(shè)置為當(dāng)前操作系統(tǒng)的外觀 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(,/);/路徑轉(zhuǎn)換 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);/*添加鍵盤監(jiān)聽事件,當(dāng)點擊鍵盤上的方向鍵右鍵時瀏覽下一張圖片,點擊左箭頭瀏覽上一張,當(dāng)按下上箭頭時對當(dāng)前圖片進行放大操作* 當(dāng)按下下箭頭時,對當(dāng)前瀏覽的圖片進行縮小操作* 同時添加鼠標滾輪監(jiān)聽事件,也對當(dāng)前圖片進行縮放操作* */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); /* 當(dāng)只有一張圖片是拋出異常,不能使用左右方向鍵,待解決*/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
總結(jié)
以上是生活随笔為你收集整理的java图片查看器下载_java照片查看器源代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: feign获取outstream_Spr
- 下一篇: 用matlab时提示数据写入文件期间被裁