亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java實現的圖像查看器完整實例

2019-11-26 14:56:44
字體:
來源:轉載
供稿:網友

本文實例講述了Java實現的圖像查看器。分享給大家供大家參考。具體如下:

1. MyCanvas.java:

package PictureViewer;import java.awt.*;import java.awt.event.*;import java.awt.image.*;public class MyCanvas extends Canvas implements ComponentListener{  private BufferedImage bi;  private Image im;  private int image_width;  private int image_height;  public void setImage(BufferedImage bi){    this.bi = bi;    this.zoom();  }  public void paint(Graphics g){    g.drawImage(im,(this.getWidth()-image_width)/2,(this.getHeight()-image_height)/2,this);  }  public void componentResized(ComponentEvent e){    if(bi != null){      System.out.println("resize!!");      this.zoom();      this.repaint();    }  }  public void componentMoved(ComponentEvent e){}  public void componentShown(ComponentEvent e){}  public void componentHidden(ComponentEvent e){}  public void zoom(){    if(bi == null)      return;    int screen_width = this.getWidth();    int screen_height = this.getHeight();    double screen_proportion = 1.0 * screen_height / screen_width;    System.out.println("screen: w "+screen_width+" ,h "+screen_height+" ,p0 "+screen_proportion);    image_width = bi.getWidth(this);    image_height = bi.getHeight(this);    double image_proportion = 1.0 * image_height / image_width;    System.out.println("image: w "+image_width+" ,h "+image_height+" ,p1 "+image_proportion);    if(image_proportion > screen_proportion){      image_height = screen_height;      image_width = (int)(image_height / image_proportion);        System.out.println(" p1>p0 w= "+image_width);    }else{      image_width = screen_width;      image_height = (int)(image_width * image_proportion);        System.out.println(" p0>p1 h= "+image_height);    }    im = bi.getScaledInstance(image_width,image_height,Image.SCALE_SMOOTH);  }}

2. MyFilter.java:

package PictureViewer;import java.io.File;import java.io.FilenameFilter;public class MyFilter implements FilenameFilter{  private String[] extension;    public MyFilter(){    extension = new String[]{".jpg", ".JPG", ".gif", ".GIF", ".png", ".PNG", ".jpeg", ".JPEG"};   }  public MyFilter(String[] extension){    this.extension = extension;   }  public boolean accept(File dir,String name){    for(String s : extension){      if(name.endsWith(s)){        return true;      }    }      return false;   }  }

3. PictureViewer.java:

package PictureViewer;import java.awt.*;import java.awt.event.*;import java.awt.image.*;import java.io.*;import javax.imageio.*;public class PictureViewer implements ActionListener{  private Frame frame;  private MyCanvas mc ;  private String fpath;  private String fname;  private File[] files;  private int findex ;  private FileDialog fd_load;   private MyFilter filter;  private Button previous ;  private Button next ;  public static void main( String args[]) throws Exception {    new PictureViewer().init();  }  public void init(){    frame = new Frame("PictureViewer");    Panel pb = new Panel();    Button select = new Button("選擇圖片");    previous = new Button("上一張");    next = new Button("下一張");    select.addActionListener(this);    previous.addActionListener(this);    next.addActionListener(this);    pb.add(select);    pb.add(previous);    pb.add(next);     mc = new MyCanvas();    mc.setBackground(new Color(200,210,230));    mc.addComponentListener(mc);    frame.add(pb,"North");    frame.add(mc,"Center");    frame.setSize(360,360);    frame.setLocation(400,200);    frame.addWindowListener(new WindowAdapter(){      public void windowClosing(WindowEvent e){        System.exit(0);       }      });     frame.setVisible(true);     this.validateButton();    filter = new MyFilter();    fd_load = new FileDialog(frame,"打開文件",FileDialog.LOAD);    fd_load.setFilenameFilter(filter);  }  public void actionPerformed(ActionEvent e){    String command = e.getActionCommand();    if(command.equals("選擇圖片")){      fd_load.setVisible(true);      fpath = fd_load.getDirectory();      fname = fd_load.getFile();      if((fpath != null) && (fname != null)){        this.display(new File(fpath + fname));         files = new File(fpath).listFiles(filter);        this.setIndex();      }    }else if(command.equals("上一張")){      findex--;      if(findex<0)        findex = 0;      this.display(files[findex]);    }else if(command.equals("下一張")){      findex++;      if(findex >= files.length)        findex = files.length-1;      this.display(files[findex]);    }    this.validateButton();  }    public void display(File f){    try{      BufferedImage bi = ImageIO.read(f);      mc.setImage(bi);      frame.setTitle("PictureViewer - [" + f.getName() + "]");    }catch(Exception e){      e.printStackTrace();    }    mc.repaint();  }  public void setIndex(){    File current = new File(fpath + fname);     if(files != null){      for(int i=0;i<files.length;i++){        if(current.equals(files[i])){          findex = i;         }      }    }  }  public void validateButton(){    previous.setEnabled((files!=null) && (findex > 0));    next.setEnabled((files!=null) && (findex<(files.length-1)));   }}

希望本文所述對大家的java程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品亚洲国产| 2019中文字幕全在线观看| 欧美福利视频在线| 日本成人黄色片| 久久这里有精品| 精品女同一区二区三区在线播放| 91中文在线观看| 亚洲精品成人av| 国产精品久久99久久| 亚洲欧美日韩国产精品| 美女扒开尿口让男人操亚洲视频网站| 精品自在线视频| 97视频在线看| 在线播放精品一区二区三区| 久久中文字幕国产| 中文字幕日韩电影| 欧美成人免费在线观看| 久久99久国产精品黄毛片入口| 欧美电影院免费观看| 狠狠躁天天躁日日躁欧美| 精品亚洲国产成av人片传媒| 性色av一区二区三区红粉影视| 亚洲电影免费观看高清完整版| 亚洲字幕一区二区| 亚洲成人久久电影| 欧美夫妻性生活xx| 国产精品一区二区三区毛片淫片| 欧美一乱一性一交一视频| 国产精品青青在线观看爽香蕉| 日韩激情视频在线| 国产精品jvid在线观看蜜臀| 26uuu久久噜噜噜噜| 国产精品日韩精品| 在线a欧美视频| 成人黄色大片在线免费观看| 国产精品久久久久福利| 欧美视频在线观看 亚洲欧| 成人黄色大片在线免费观看| 91青草视频久久| 国产精品主播视频| 欧洲日本亚洲国产区| 日本不卡高字幕在线2019| 亚洲欧美另类国产| 国产性猛交xxxx免费看久久| 久久精品国产亚洲一区二区| 国产精品视频专区| 久久久www成人免费精品| 9.1国产丝袜在线观看| 日韩电影免费在线观看中文字幕| 亚洲精品国产精品国自产在线| 国产日韩精品一区二区| 日韩成人久久久| 日本精品久久中文字幕佐佐木| 日韩电影在线观看永久视频免费网站| 亚洲白虎美女被爆操| 欧美丰满老妇厨房牲生活| 亚洲日韩第一页| 久久影视三级福利片| 亚洲成人教育av| 亚洲自拍另类欧美丝袜| 91久久国产精品91久久性色| 2021久久精品国产99国产精品| 国产在线精品成人一区二区三区| 精品色蜜蜜精品视频在线观看| 国产精品视频网址| 日韩精品高清在线观看| 一本色道久久88综合亚洲精品ⅰ| 亚洲精品国产综合久久| 久久精品青青大伊人av| 亚洲精品久久久久久久久久久久久| 欧美极品少妇与黑人| 国产精彩精品视频| 久久99国产精品久久久久久久久| 国产精品久久91| 国色天香2019中文字幕在线观看| 26uuu另类亚洲欧美日本老年| 日韩中文字幕在线视频| 日韩免费看的电影电视剧大全| 欧美大胆a视频| 97在线视频观看| 欧美国产日产韩国视频| 92国产精品视频| 九九热这里只有在线精品视| 91在线播放国产| 成人有码在线播放| 久久99视频精品| 亚洲一区亚洲二区亚洲三区| 97免费中文视频在线观看| 国产精品久久久久久av下载红粉| 91高潮精品免费porn| 欧美性极品xxxx做受| 国产精品无av码在线观看| 国产成人精品a视频一区www| 亚洲欧美国产精品久久久久久久| 91亚洲精品一区| 97激碰免费视频| 最近2019中文字幕第三页视频| 97在线日本国产| 亚洲精品在线视频| 91九色国产在线| 91国产视频在线播放| 4444欧美成人kkkk| 国产亚洲福利一区| 中文字幕成人精品久久不卡| 国产精品爽爽爽| 亚洲欧洲成视频免费观看| 日本精品va在线观看| 日韩av在线网页| 日韩成人在线视频观看| 高清欧美一区二区三区| 国产精品直播网红| 久久久久亚洲精品| 亚洲自拍偷拍视频| 91av在线精品| 国产亚洲精品日韩| 欧美超级乱淫片喷水| 欧美专区日韩视频| 日韩av最新在线观看| 色播久久人人爽人人爽人人片视av| 亚洲一区二区三区在线视频| 亚洲成人黄色网| 欧美一级淫片播放口| 日本三级久久久| 国产精品中文在线| 久久在精品线影院精品国产| 国产九九精品视频| 欧美日本啪啪无遮挡网站| 亚洲一区国产精品| 欧美日韩裸体免费视频| 日本aⅴ大伊香蕉精品视频| 国产精品成人av性教育| 亚洲va国产va天堂va久久| 亚洲国产另类 国产精品国产免费| 国产精品狼人色视频一区| 色妞久久福利网| 日本视频久久久| 在线成人激情黄色| 国内外成人免费激情在线视频网站| 日韩国产欧美精品在线| 国产一区二区三区直播精品电影| 91青草视频久久| 国产女人18毛片水18精品| 欧美做受高潮电影o| 欧美激情性做爰免费视频| 国产精品777| 日韩精品在线看| 欧美大人香蕉在线| 亚洲毛片在线免费观看| 91tv亚洲精品香蕉国产一区7ujn| 国产成人精品999| 91美女片黄在线观看游戏| 日韩va亚洲va欧洲va国产| 久久久久久久久久婷婷| 日韩欧美国产成人| 国产精品直播网红| 亚洲欧洲国产伦综合| 亚洲四色影视在线观看| 日韩在线观看av| 国产精品视频最多的网站| 欧美视频在线观看 亚洲欧| 黄色一区二区在线| 欧美性猛交xxxxx免费看| 精品视频在线导航| 中文字幕成人精品久久不卡|