我不是畏惧风,我只是怕风把沙子吹到我的眼睛里!|

博麗靈夢

园龄:4年6个月粉丝:15关注:0

Java AWT 剪贴板工具类, 支持复制图片、文件等内容到剪贴板

用法

  Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
  clipboard.setContents(XTransferableAdaptor.of("HelloWorld", DataFlavor.stringFlavor), null);

工具类如下

    /**
     * awt 剪贴板的工具类, 弥补了内置类型不全的问题
     *
     * @param data    要往剪贴板内塞的数据
     * @param flavors 支持的数据类型
     */
    public record XTransferableAdaptor(@Nonnull Object data, @Nonnull DataFlavor[] flavors) implements Transferable {

        public static XTransferableAdaptor of(Object data, DataFlavor... flavors) {
            return new XTransferableAdaptor(data, flavors);
        }

        @Override
        public DataFlavor[] getTransferDataFlavors() {
            return flavors;
        }

        @Override
        public boolean isDataFlavorSupported(DataFlavor flavor) {
            return Set.of(flavors).contains(flavor);
        }

        @Nonnull
        @Override
        public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
            if (isDataFlavorSupported(flavor)) {
                return data;
            }
            throw new UnsupportedFlavorException(flavor);
        }
    }

本文作者:博麗靈夢

本文链接:https://www.cnblogs.com/Hakurei-Reimu-Zh/p/18656293

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   博麗靈夢  阅读(12)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起