首页 > 编程语言 >Java AWT 剪贴板工具类, 支持复制图片、文件等内容到剪贴板

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

时间:2025-01-06 21:12:05浏览次数:6  
标签:flavors 剪贴板 Java AWT flavor data public DataFlavor

用法

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

标签:flavors,剪贴板,Java,AWT,flavor,data,public,DataFlavor
From: https://www.cnblogs.com/Hakurei-Reimu-Zh/p/18656293

相关文章

  • 【Java基础】Java 中日期时间字符串转换为 Date 对象的解析与应用
    ......
  • Java入门
    目录 01-人机交互-图形化界面的小故事1.1什么是cmd?02-打开CMD2.1如何打开CMD窗口?03-常见的cmd命令3.1常见的cmd命令04-练习-利用CMD打开QQ并配置环境变量4.1cmd练习4.2环境变量05-Java概述和学习方法5.1Java是什么?06-Java学习-JDK下载和安装6.1下载和安装6.1.1......
  • Java基础概念
    目录01-注释1.1什么是注释?1.2为什么要有注释?1.3注释概念1.4注释分类1.5注释的注意事项02-关键字2.1什么是关键字2.2关键字特点2.3class关键字03-字面量3.1什么是字面量?3.2字面量的分类3.3扩展点:特殊字符 04-变量-基本用法01-注释1.1什么是注释?    ......
  • 使用Java API操作HDFS
    第一步:在Windows配置Hadoop运行环境(1)编辑系统环境变量。使用hadoop-version命令查看hadoop环境是否配置成功,如下图所示:(2)在hadoop-3.3.4文件夹的bin目录下添加Windows系统的依赖文件,如下图所示:(3)重启电脑第二步:配置案例环境,使用idea创建一个maven项目。第三步:在pom.xm......
  • CF 139A.Petr and Book(Java实现)
    题目分析    这个题就是看书,给你一本书一共n页,每天看i页,问你第几天看完思路分析    两行输入获取n和i的值,数据处理的逻辑就是不断用n减去i,直到n<=0,同时注意一周七天循环,涉及到取模代码importjava.util.*;publicclassMain{ publicstaticvoidma......
  • 深入探索JCEF框架:Java与Chromium的完美结合
    摘要JCEF框架为开发者提供了一个强大的工具,使得使用Java编程语言嵌入基于Chromium的浏览器成为可能。通过访问项目主页(https://bitbucket.org/chromiumembedded/jcef),开发者可以获得详细的文档和支持,从而更轻松地将浏览器组件集成到现有的应用程序中。本文将深入探讨JCEF的功能,并......
  • Java高级开发面试题,在设计一个高并发的在线交易系统时,如何确保线程安全和数据一致性?
    在设计一个高并发的在线交易系统时,如何确保线程安全和数据一致性?考虑一个类似于电子商务平台的商品秒杀活动。在这种场景中,大量用户会在短时间内尝试购买有限数量的商品。因此,系统的挑战在于处理高并发请求,同时确保每个订单的数据完整性和一致性。1.锁机制与性能考量传......
  • java基础数据类型
    java基础数据类型:byte,short,int,long,float,double,char,boolean;当参与计算的时候,精度小的类型会自动转换为精度大的类型;char->int->long->float->doublebyte->short->int->long->float->double(byte,short)和char之间不存在类型转换;对于......
  • 搭建JAVA运行环境
    1.首先下载linux对应的安装包下载地址:https://www.oracle.com/java/technologies/downloads/#java82.解压安装包jdk-8u391-linux-x64.tar.gztar -zxvf jdk-8u391-linux-x64.tar.gz3.新建jdk目录 cd /usr/libsudomkdirjdk4.......
  • Java String、StringBuffer、StringBuilder 详解(含 Java 7 和 Java 8 变化)
    JavaString、StringBuffer、StringBuilder详解(含Java7和Java8变化)在Java开发中,String是最常用的数据类型之一,而StringBuffer和StringBuilder也在字符串操作中扮演着重要角色。从Java7到Java8,它们的底层实现发生了一些变化,影响了性能和使用方式。本文将深入解......