亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? imageviewer.java

?? 基于jxta的P2P框架的系統
?? JAVA
字號:
package connex.plugins.slideshow;

import org.jdesktop.swingx.JXImageView;
import java.awt.event.InputEvent;
import javax.swing.JComponent;
import javax.swing.TransferHandler;
import javax.imageio.ImageIO;
import java.awt.datatransfer.Transferable;
import java.net.URL;
import java.io.File;
import java.util.List;
import java.awt.datatransfer.DataFlavor;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.io.IOException;
import java.util.ArrayList;
import org.jdesktop.swingx.util.PaintUtils;
import java.awt.datatransfer.UnsupportedFlavorException;
import javax.swing.AbstractAction;
import javax.swing.Action;
import java.awt.event.ActionEvent;
import java.awt.event.HierarchyEvent;
import java.awt.event.HierarchyBoundsAdapter;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class ImageViewer
    extends JXImageView {
  private ImageListener listener;
  private Image image;

  public ImageViewer() {
  }

  public void setImageListener(ImageListener listener) {
    this.listener = listener;
    this.addHierarchyBoundsListener(new HierarchyBoundsAdapter() {
      public void ancestorResized(HierarchyEvent e) {
        this_ancestorResized(e);
      }
    });
    try {
      this.setTransferHandler(new DnDxHandler());
    } catch (ClassNotFoundException ex) {
    }

  }
  public void this_ancestorResized(HierarchyEvent e) {
    try {
      fitImageToScreen();
    } catch (Exception ex) {
    }
 }


  /**
   * Set the current image to an image pointed to by this File.
   * @param file a File pointing to an image
   * @throws java.io.IOException thrown if the image cannot be loaded
   */
  public void setImage(File file) throws IOException {
    System.out.println("reading: " + file.getAbsolutePath());
    setImage(ImageIO.read(file));
    if(getImage()!=null){
      listener.receiveImage(file);
    }
  }

  /**
   * Sets the current image. Can set null if there should be no image show.
   * @param image the new image to set, or null.
   */
  public void setImage(Image image) {
    super.setImage(image);
    try {
      fitImageToScreen();
    } catch (Exception ex) {
    }
    repaint();
  }

  public void fitImageToScreen() {
    if (getImage().getWidth(null) > getWidth() ||
        getImage().getHeight(null) > getHeight()) {

      double fit = (new Double("" + getWidth()) /
                    new Double(getImage().getWidth(null) + ""));

      setScale(fit);
      if ( (getImage().getHeight(null) * fit) > getHeight()) {
        fit = (new Double("" + getHeight()) /
               new Double(getImage().getHeight(null) + ""));

        setScale(fit);

      }
    }

  }

  public Action getZoomOutAction() {
    Action action = new AbstractAction() {
      public void actionPerformed(ActionEvent actionEvent) {
        setScale(getScale() * 0.9);
      }
    };
    action.putValue(Action.NAME, "Zoom Out");
    return action;
  }

  /**
   * Gets an action which will zoom the current image in by a factor of 2
   * @return an action
   */
  public Action getZoomInAction() {
    Action action = new AbstractAction() {
      public void actionPerformed(ActionEvent actionEvent) {
        setScale(getScale() * 1.1);
      }
    };
    action.putValue(Action.NAME, "Zoom In");
    return action;
  }

  public Action getOriginalSizeAction() {

    Action action = new AbstractAction() {
      public void actionPerformed(ActionEvent actionEvent) {
        setScale(1.0);
      }
    };
    action.putValue(Action.NAME, "OriginalSize");
    return action;
  }
  /**
     * Sets whether or not the user can drag images. When set to true the user can
     * drag the photo around with their mouse. Also the cursor will be set to the
     * 'hand' cursor. When set to false the user cannot drag photos around
     * and the cursor will be set to the default.
     * @param editable whether or not the user can drag images
     */




  private class DnDxHandler
      extends TransferHandler {
    DataFlavor urlFlavor;

    public DnDxHandler() throws ClassNotFoundException {
      urlFlavor = new DataFlavor("application/x-java-url;class=java.net.URL");
    }

    public void exportAsDrag(JComponent c, InputEvent evt, int action) {
      //System.out.println("exportting as drag");
      super.exportAsDrag(c, evt, action);
    }

    public int getSourceActions(JComponent c) {
      //System.out.println("get source actions: " + c);
      return COPY;
    }

    protected void exportDone(JComponent source, Transferable data, int action) {
      System.out.println("exportDone: " + source + " " + data + " " + action);
    }

    public boolean canImport(JComponent c, DataFlavor[] flavors) {
      //System.out.println("canImport:" + c);
      for (int i = 0; i < flavors.length; i++) {
        //System.out.println("testing: "+flavors[i]);
        if (DataFlavor.javaFileListFlavor.equals(flavors[i])) {
          return true;
        }
        if (DataFlavor.imageFlavor.equals(flavors[i])) {
          return true;
        }
        if (urlFlavor.match(flavors[i])) {
          return true;
        }

      }
      return false;
    }

    protected Transferable createTransferable(JComponent c) {
      System.out.println("creating a transferable");
      JXImageView view = (JXImageView) c;
      return new ImageTransferable(view.getImage(),
                                   view.getExportName(), view.getExportFormat());
    }

    public boolean importData(JComponent comp, Transferable t) {
      System.out.println("importData called");
      if (canImport(comp, t.getTransferDataFlavors())) {
        try {
          if (t.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
            List files = (List) t.getTransferData(DataFlavor.javaFileListFlavor);
            System.out.println("doing file list flavor");
            if (files.size() > 0) {
              File file = (File) files.get(0);
              System.out.println("readingt the image: " + file.getCanonicalPath());
              /*Iterator it = ImageIO.getImageReaders(new FileInputStream(file));
                                           while(it.hasNext()) {
                  System.out.println("can read: " + it.next());
                                           }*/
              //BufferedImage img = ImageIO.read(file);
              setImage(file);
              return true;
            }
          }
          //System.out.println("doing a uri list");
          Object obj = t.getTransferData(urlFlavor);
          //System.out.println("obj = " + obj + " " + obj.getClass().getPackage() + " "
          //        + obj.getClass().getName());
          if (obj instanceof URL) {

            setImage(new File( ( (URL) obj).getFile()));
          }
          return true;
        } catch (Exception ex) {
          System.out.println(ex.getMessage());
          ex.printStackTrace();
          fireError(ex);
        }
      }
      return false;
    }

  }

  private class ImageTransferable
      implements Transferable {
    private Image img;
    private List files;
    private String exportName, exportFormat;
    public ImageTransferable(Image img, String exportName, String exportFormat) {
      this.img = img;
      this.exportName = exportName;
      this.exportFormat = exportFormat;
    }

    public DataFlavor[] getTransferDataFlavors() {
      DataFlavor[] flavors = {
          DataFlavor.imageFlavor,
          DataFlavor.javaFileListFlavor};
      return flavors;
    }

    public boolean isDataFlavorSupported(DataFlavor flavor) {
      if (flavor == DataFlavor.imageFlavor) {
        return true;
      }
      if (flavor == DataFlavor.javaFileListFlavor) {
        return true;
      }
      return false;
    }

    public Object getTransferData(DataFlavor flavor) throws
        UnsupportedFlavorException, IOException {
      //System.out.println("doing get trans data: " + flavor);
      if (flavor == DataFlavor.imageFlavor) {
        return img;
      }
      if (flavor == DataFlavor.javaFileListFlavor) {
        if (files == null) {
          files = new ArrayList();
          File file = File.createTempFile(exportName, "." + exportFormat);
          //System.out.println("writing to: " + file);
          ImageIO.write(PaintUtils.convertToBufferedImage(img), exportFormat,
                        file);
          files.add(file);
        }
        //System.out.println("returning: " + files);
        return files;
      }
      return null;
    }
  }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区3| 精品一区二区三区免费观看| 欧美成人性战久久| 久久亚洲精华国产精华液| 另类小说综合欧美亚洲| 久久久久久电影| 91香蕉视频污在线| 亚洲国产欧美一区二区三区丁香婷| 欧美在线观看你懂的| 亚洲va欧美va人人爽午夜| 欧美一区二区免费视频| 国产麻豆一精品一av一免费| 国产精品丝袜一区| 欧美性大战久久| 麻豆精品蜜桃视频网站| 国产欧美一区二区在线观看| 91在线视频在线| 日韩成人免费看| 欧美韩国日本不卡| 欧美系列一区二区| 精品一区二区三区的国产在线播放 | 欧美一级免费观看| 国产黑丝在线一区二区三区| 亚洲国产精品黑人久久久| 成人综合激情网| 亚洲综合视频在线| 久久午夜老司机| 色哟哟国产精品| 麻豆精品视频在线观看视频| 国产精品福利av| 91麻豆精品国产91久久久久久| 成人做爰69片免费看网站| 丝袜诱惑制服诱惑色一区在线观看| 久久精品人人做人人综合 | 欧美精品一区二区三区一线天视频| 高清成人在线观看| 亚洲18女电影在线观看| 国产午夜精品一区二区三区嫩草| 色噜噜狠狠一区二区三区果冻| 老色鬼精品视频在线观看播放| 国产精品久久久久一区二区三区| 日韩一区二区电影在线| 91麻豆免费视频| 国产精品一二三区在线| 日韩精品亚洲一区| 亚洲乱码国产乱码精品精的特点| 久久美女艺术照精彩视频福利播放| 欧洲一区二区av| 成人免费黄色大片| 激情文学综合插| 偷窥国产亚洲免费视频| 亚洲柠檬福利资源导航| 中文字幕av资源一区| 日韩一级大片在线| 欧美日韩视频在线一区二区 | 一本色道久久综合狠狠躁的推荐| 国产一区二区久久| 美日韩一区二区| 午夜精品福利在线| 一区二区三区波多野结衣在线观看| 国产女同互慰高潮91漫画| 日韩精品最新网址| 91精品国产手机| 欧美日韩国产三级| 欧美午夜不卡视频| 欧美日韩午夜影院| 欧美三级乱人伦电影| 在线一区二区三区做爰视频网站| 成人免费av网站| 成人手机电影网| 99这里只有精品| av男人天堂一区| 99re在线精品| 色综合久久久网| 久久久久久亚洲综合| 成人免费视频一区二区| 国产成人综合自拍| 成人黄色国产精品网站大全在线免费观看| 久久精品久久99精品久久| 日本女人一区二区三区| 蜜桃视频一区二区| 久久99蜜桃精品| 狠狠色狠狠色综合系列| 国产久卡久卡久卡久卡视频精品| 久久精品日产第一区二区三区高清版| 久久色在线视频| 国产三级欧美三级日产三级99| 国产欧美日韩精品一区| 国产精品久久久久桃色tv| 《视频一区视频二区| 亚洲精品成a人| 丝袜亚洲精品中文字幕一区| 日本亚洲欧美天堂免费| 久草精品在线观看| 国产成人午夜精品影院观看视频 | 日韩国产精品大片| 蜜桃精品视频在线| 国产精品888| 99精品热视频| 欧美三级电影一区| 精品国产一区二区三区不卡 | 精品久久久网站| 国产精品色呦呦| 亚洲免费观看高清完整版在线| 亚洲福利视频一区| 九九视频精品免费| 成人aa视频在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 3atv在线一区二区三区| 日本一区二区在线不卡| 一区二区三区国产豹纹内裤在线| 麻豆免费看一区二区三区| 成人爽a毛片一区二区免费| 欧美日韩一级视频| 久久久综合精品| 亚洲国产精品尤物yw在线观看| 精品亚洲免费视频| 99精品久久免费看蜜臀剧情介绍| 欧美日韩国产另类一区| 久久婷婷国产综合精品青草| 亚洲精品日韩专区silk| 久久99精品一区二区三区三区| 91香蕉视频污| 久久这里只有精品首页| 亚洲成人动漫精品| 成人精品鲁一区一区二区| 欧美丰满高潮xxxx喷水动漫| 国产精品色呦呦| 精品一区二区三区免费播放| 欧美亚州韩日在线看免费版国语版| 日韩欧美一级在线播放| 亚洲人吸女人奶水| 国产精品123区| 欧美一二三四在线| 亚洲一区二区精品3399| 成人黄页在线观看| 精品国产成人系列| 午夜一区二区三区在线观看| 99视频超级精品| 久久综合成人精品亚洲另类欧美| 午夜伦欧美伦电影理论片| av一区二区三区在线| 国产色产综合产在线视频| 裸体歌舞表演一区二区| 欧美三级视频在线播放| 综合欧美亚洲日本| 国产黄色精品视频| 2021国产精品久久精品| 免费一级片91| 欧美精品一二三四| 亚洲一二三四在线观看| av不卡在线播放| 国产精品人人做人人爽人人添| 激情偷乱视频一区二区三区| 日韩一区二区三区精品视频| 日韩精品欧美成人高清一区二区| 在线亚洲+欧美+日本专区| 亚洲欧美一区二区不卡| 99久久婷婷国产综合精品电影| 久久久久高清精品| 国产一区二区伦理| 国产亚洲一二三区| 国产麻豆成人传媒免费观看| 亚洲精品日产精品乱码不卡| 久久国产精品区| 欧美一区二区在线免费观看| 日韩中文欧美在线| 欧美mv和日韩mv的网站| 免费三级欧美电影| 日韩欧美国产不卡| 久久66热偷产精品| 久久久久久久久久久久久女国产乱| 理论片日本一区| 精品盗摄一区二区三区| 国产精品1区2区| 国产欧美精品一区| 91蜜桃视频在线| 亚洲一区日韩精品中文字幕| 欧美日韩亚洲不卡| 久久精品国产99| 国产午夜精品美女毛片视频| 粉嫩一区二区三区在线看| 国产精品久久久久久久久免费樱桃 | 亚洲一区二区三区四区的| 欧美日精品一区视频| 丝袜国产日韩另类美女| 666欧美在线视频| 精品一区二区日韩| 国产精品久久毛片| 欧美午夜免费电影| 激情综合网激情| 国产精品视频免费| 欧美午夜精品免费| 精品一区二区影视| 自拍偷拍国产精品| 欧美电影在线免费观看| 国产精品18久久久久久久网站| 亚洲人成网站影音先锋播放| 欧美图区在线视频| 国产在线看一区|