如何将javafilelist写入剪贴板?

rta7y2nd  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(209)

在过去的日子里,我一直在用java开发设备间的剪贴板同步实用程序。
我一直在努力的唯一一件事就是把文件写到剪贴板上。我可以使用 javaFileListFlavor ,但在将另一个文件列表写入剪贴板时,什么也没有发生。
这是可转移类:

public class TransferableFiles implements Serializable, Transferable {
    private List<File> data;

    public TransferableFiles(List<File> data) {
        super();

        this.data = data;
    }

    public DataFlavor[] getTransferDataFlavors() {
        return new DataFlavor[]{DataFlavor.javaFileListFlavor};
    }

    @Override
    public boolean isDataFlavorSupported(DataFlavor flavor) {
        return (flavor.equals(DataFlavor.javaFileListFlavor));
    }

    public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {
        if (flavor.equals(DataFlavor.javaFileListFlavor)) {
            return data;
        } else {
            throw new UnsupportedFlavorException(flavor);
        }
    }

    public List<File> getData() {
        return data;
    }

    public String toString() {
        return data.toString();
    }
}

我给它写了这样一封信:

private static void writeToClipboard(Transferable transferable) {
    getSystemClipboard().setContents(transferable, null);
}

public static void writeFilesToClipboard(List<File> files) {
    writeToClipboard(new TransferableFiles(files));
}

public static void main(String[] args) {
    List<File> files = new ArrayList<File>();
    files.add(new File("x"));
    files.add(new File("y"));
    files.add(new File("z"));

    writeFilesToClipboard(files);
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题