The Java Developers Almanac 1.4


Order this book from Amazon.

   
Home > List of Packages > java.awt.datatransfer  [3 examples]

e638. Getting and Setting an Image on the System Clipboard

    // 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;
        }
    }

 Related Examples
e637. Getting and Setting Text on the System Clipboard
e639. Determining When an Item Is No Longer on the System Clipboard


© 2002 Addison-Wesley.