Java 访问剪切板(复制,粘贴)的示例

作者:javapub 时间:2023-11-10 12:26:13 

以下共有4个函数分别是:

1.从剪切板获得文字。
2.将字符串复制到剪切板。
3.从剪切板获得图片。
4.复制图片到剪切板。


/**
* 从剪切板获得文字。
*/
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;
}

/**
* 将字符串复制到剪切板。
*/
public static void setSysClipboardText(String writeMe) {
Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable tText = new StringSelection(writeMe);
clip.setContents(tText, null);
}

/**
* 从剪切板获得图片。
*/
public static Image getImageFromClipboard() throws Exception {
Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable cc = sysc.getContents(null);
if (cc == null)
return null;
else if (cc.isDataFlavorSupported(DataFlavor.imageFlavor))
return (Image) cc.getTransferData(DataFlavor.imageFlavor);
return null;
}

/**
* 复制图片到剪切板。
*/
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);
}

来源:https://www.iteye.com/blog/javapub-939167

标签:java,剪切板,复制,粘贴
0
投稿

猜你喜欢

  • Java 使用poi把数据库中数据导入Excel的解决方法

    2022-09-19 14:18:52
  • 将本地jar包安装进入maven仓库(实现方法)

    2022-06-18 00:35:54
  • Android手机屏幕同步工具asm.jar

    2023-10-31 20:01:26
  • Java之Jackson的基本使用案例讲解

    2022-05-27 22:08:49
  • 在IntelliJ IDEA中使用gulp的方法步骤(图文)

    2022-10-12 06:29:08
  • Spring Cache框架应用介绍

    2023-06-15 22:32:59
  • Android中post请求传递json数据给服务端的实例

    2022-04-21 01:51:18
  • ref与out之间的区别深入解析

    2023-08-05 23:45:28
  • 详细聊聊C#的并发机制优秀在哪

    2023-03-04 15:41:18
  • Android如何优雅的处理重复点击

    2022-08-11 20:22:35
  • C#访问及调用类中私有成员与方法示例代码

    2022-06-02 05:30:35
  • C#清除字符串内空格的方法

    2023-10-07 15:51:04
  • 浅析Mybatis Plus和Mybatis的区别

    2022-12-05 18:14:18
  • Unity 数据存储和读取的方法汇总

    2021-12-12 11:39:47
  • C#实现QQ截图功能及相关问题

    2022-10-30 08:47:01
  • 解决Android软键盘弹出覆盖h5页面输入框问题

    2023-06-19 11:33:24
  • Java 使用 HttpClient 发送 GET请求和 POST请求

    2023-07-23 07:56:13
  • 简介Winform中创建用户控件

    2021-10-14 04:39:37
  • SpringBoot 在项目启动之后执行自定义方法的两种方式小结

    2021-05-25 15:46:36
  • Java8中的Stream 流实践操作

    2021-11-01 19:59:33
  • asp之家 软件编程 m.aspxhome.com