Java复制到粘贴板的代码
                            
                                
                                Eave
                            
                            
                                
                                2017.05.04
                            
                            
                        
                        package com.wizardaws.tools.application;
import com.wizardaws.tools.image.Images;
import com.wizardaws.tools.utils.ListUtil;
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.image.BufferedImage;
import java.io.File;
import java.util.List;
public class Copyboard
{
    public static void main(String[] args) throws Exception
    {
        // 获取系统剪贴板
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        // 复制文本到剪贴板
        Transferable transferable0 = new StringSelection("Qian");
        clipboard.setContents(transferable0, null);
        // 复制图片到剪贴板
        Transferable transferable1 = new ImageTransferable(Images.load("E:\\Pictures\\20240601210157.png"));
        clipboard.setContents(transferable1, null);
        // 复制文件到剪贴板
        Transferable transferable2 = new FileTransferable(ListUtil.newArrayList(new File("E:\\Pictures\\20240601210157.png")));
        clipboard.setContents(transferable2, null);
        // 粘贴板上的数据是文字
        if(clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor))
        {
            String content = (String) clipboard.getData(DataFlavor.stringFlavor);
            System.out.println(content);
        }
        // 粘贴板上的数据是图片
        else if(clipboard.isDataFlavorAvailable(DataFlavor.imageFlavor))
        {
            BufferedImage image = (BufferedImage) clipboard.getData(DataFlavor.imageFlavor);
            Images.save(image, "D:\\124.png");
            System.out.println(image.getType());
        }
        // 粘贴板上的数据是文件
        else if(clipboard.isDataFlavorAvailable(DataFlavor.javaFileListFlavor))
        {
            // 获取文件列表
            List files = (List) clipboard.getData(DataFlavor.javaFileListFlavor);
            // 遍历文件列表,并保存每个文件到磁盘
            for(File file : files)
            {
                System.out.println(file.getName() + "=>" + file.length()); // 指定保存路径和文件名
            }
        }
    }
}  
支持复制图片到剪切板的代码实现:ImageTransferable.java
package com.wizardaws.tools.application;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.image.BufferedImage;
public class ImageTransferable implements Transferable
{
    private BufferedImage image;
    public ImageTransferable(BufferedImage image)
    {
        this.image = image;
    }
    @Override
    public DataFlavor[] getTransferDataFlavors()
    {
        return new DataFlavor[]{DataFlavor.imageFlavor}; // 返回图像数据的格式
    }
    @Override
    public boolean isDataFlavorSupported(DataFlavor flavor)
    {
        return DataFlavor.imageFlavor.equals(flavor); // 判断是否支持图像格式
    }
    @Override
    public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException
    {
        if(!isDataFlavorSupported(flavor))
        {
            throw new UnsupportedFlavorException(flavor);
        }
        return image; // 返回图像数据
    }
}
支持复制文件到剪切板的代码实现:FileTransferable.java
package com.wizardaws.tools.application;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.File;
import java.util.List;
public class FileTransferable implements Transferable
{
    private List<File> files;
    public FileTransferable(List<File> files)
    {
        this.files = files;
    }
    @Override
    public DataFlavor[] getTransferDataFlavors()
    {
        return new DataFlavor[]{DataFlavor.javaFileListFlavor}; // 返回文件数据的格式
    }
    @Override
    public boolean isDataFlavorSupported(DataFlavor flavor)
    {
        return DataFlavor.javaFileListFlavor.equals(flavor); // 判断是否支持文件格式
    }
    @Override
    public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException
    {
        if(!isDataFlavorSupported(flavor))
        {
            throw new UnsupportedFlavorException(flavor);
        }
        return files; // 返回文件数据
    }
}