Java DataFlavor를 이용한 클립보드 사용

Projects/CoVNC 2007. 2. 7. 15:00 Posted by soulfree >동네청년<

   // If an image is on the system clipboard, this method returns it;
   // otherwise it returns null.
   public static Image getClipboard() {
       Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
  
       try {
           if (t != null && t.isDataFlavorSupported(DataFlavor.imageFlavor)) {
               Image text = (Image)t.getTransferData(DataFlavor.imageFlavor);
               return text;
           }
       } catch (UnsupportedFlavorException e) {
       } catch (IOException e) {
       }
       return null;
   }

Setting an image on the system clipboard requires a custom Transferable object to hold the image while on the clipboard.
   // This method writes a image to the system clipboard.
   // otherwise it returns null.
   public static void setClipboard(Image image) {
       ImageSelection imgSel = new ImageSelection(image);
       Toolkit.getDefaultToolkit().getSystemClipboard().setContents(imgSel, null);
   }
  
   // This class is used to hold an image while on the clipboard.
   public static class ImageSelection implements Transferable {
       private Image image;
  
       public ImageSelection(Image image) {
           this.image = image;
       }
  
       // Returns supported flavors
       public DataFlavor[] getTransferDataFlavors() {
           return new DataFlavor[]{DataFlavor.imageFlavor};
       }
  
       // Returns true if flavor is supported
       public boolean isDataFlavorSupported(DataFlavor flavor) {
           return DataFlavor.imageFlavor.equals(flavor);
       }
  
       // Returns image
       public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
           if (!DataFlavor.imageFlavor.equals(flavor)) {
               throw new UnsupportedFlavorException(flavor);
           }
           return image;
       }
   }


'Projects > CoVNC' 카테고리의 다른 글

Ultra VNC 소개  (0) 2007.02.13
vnc 소개  (0) 2007.02.09
Java DataFlavor를 이용한 클립보드 사용  (0) 2007.02.07
DIB 형식 파일로 저장  (0) 2007.02.06
DIB구조  (0) 2007.02.05
DIB를 DDB로 변환  (0) 2007.02.05

댓글을 달아 주세요