Java 工具类---操作系统剪贴板

之前网上找到的一个工具类具体出处我忘了。
这里贴上源代码:

package clipboard.util;

import java.awt.Image;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.image.BufferedImage;
import java.io.IOException;

public class SysClipboardUtil
{
    /**
     * 从剪贴板中获取文本字符串。
     * @return 剪贴板中的文本。
     */
    public static String getSysClipboardText()
    {
        String ret = "";
        Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard();
        // 获取剪切板中的内容
        Transferable clipTf = sysClip.getContents(null);

        if (clipTf != null)
        {
            // 检查内容是否是文本类型
            if (clipTf.isDataFlavorSupported(DataFlavor.stringFlavor))
            {
                try
                {
                    ret = (String) clipTf
                            .getTransferData(DataFlavor.stringFlavor);
                } catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
        }

        return ret;
    }
    /**
     * 把字符串写到系统剪贴板。
     * @param writeMe 要写入剪贴板的文本
     */
    public static void setSysClipboardText(String writeMe)
    {
        Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
        Transferable tText = new StringSelection(writeMe);
        clip.setContents(tText, null);
    }
    /**
     * 从系统剪贴板获取图片。
     * @return 系统剪贴板里面的图片。
     */
    public static BufferedImage getImageFromClipboard()
    {
        try
        {
            Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();
            Transferable cc = sysc.getContents(null);
            if (cc == null)
                return null;
            else if (cc.isDataFlavorSupported(DataFlavor.imageFlavor))
                return (BufferedImage) cc
                        .getTransferData(DataFlavor.imageFlavor);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 把图片复制到剪贴板中。
     * @param image 要复制到剪贴板的图片。
     */
    public static void setClipboardImage(final Image image)
    {
        Transferable trans = new Transferable()
        {
            public DataFlavor[] getTransferDataFlavors()
            {
                return new DataFlavor[]
                {DataFlavor.imageFlavor};
            }

            public boolean isDataFlavorSupported(DataFlavor flavor)
            {
                return DataFlavor.imageFlavor.equals(flavor);
            }

            public Object getTransferData(DataFlavor flavor)
                    throws UnsupportedFlavorException, IOException
            {
                if (isDataFlavorSupported(flavor))
                    return image;
                throw new UnsupportedFlavorException(flavor);
            }

        };
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(trans,
                null);
    }

}

使用该类可以往系统剪贴板中写入文字,获取文字。写入图片,获取图片。该工具对应jar包地址:
https://download.csdn.net/download/qq_21808961/10449878

猜你喜欢

转载自blog.csdn.net/qq_21808961/article/details/80671259