1. package com.test.jvm.oom.design;
  2.  
  3. import java.awt.Image;
  4. import java.awt.Toolkit;
  5. import java.awt.datatransfer.Clipboard;
  6. import java.awt.datatransfer.DataFlavor;
  7. import java.awt.datatransfer.StringSelection;
  8. import java.awt.datatransfer.Transferable;
  9. import java.awt.datatransfer.UnsupportedFlavorException;
  10. import java.io.FileOutputStream;
  11. import java.io.IOException;
  12. import java.io.OutputStreamWriter;
  13. import java.io.Reader;
  14.  
  15. public class Test {
  16.  
  17. /**
  18. *1. 从剪切板获得文字。
  19. */
  20. public static String getSysClipboardText() {
  21. String ret = "";
  22. Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard();
  23. // 获取剪切板中的内容
  24. Transferable clipTf = sysClip.getContents(null);
  25.  
  26. if (clipTf != null) {
  27. // 检查内容是否是文本类型
  28. if (clipTf.isDataFlavorSupported(DataFlavor.stringFlavor)) {
  29. try {
  30. ret = (String) clipTf
  31. .getTransferData(DataFlavor.stringFlavor);
  32. } catch (Exception e) {
  33. e.printStackTrace();
  34. }
  35. }
  36. }
  37.  
  38. return ret;
  39. }
  40.  
  41. /**
  42. * 2.将字符串复制到剪切板。
  43. */
  44. public static void setSysClipboardText(String writeMe) {
  45. Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
  46. Transferable tText = new StringSelection(writeMe);
  47. clip.setContents(tText, null);
  48. }
  49.  
  50. /**
  51. *3. 从剪切板获得图片。
  52. */
  53. public static Image getImageFromClipboard() throws Exception {
  54. Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();
  55. Transferable cc = sysc.getContents(null);
  56. if (cc == null)
  57. return null;
  58. else if (cc.isDataFlavorSupported(DataFlavor.imageFlavor))
  59. return (Image) cc.getTransferData(DataFlavor.imageFlavor);
  60. return null;
  61.  
  62. }
  63.  
  64. /**
  65. * 4.复制图片到剪切板。
  66. */
  67. public static void setClipboardImage(final Image image)throws Exception {
  68. Transferable trans = new Transferable() {
  69. public DataFlavor[] getTransferDataFlavors() {
  70. return new DataFlavor[] { DataFlavor.imageFlavor };
  71. }
  72.  
  73. public boolean isDataFlavorSupported(DataFlavor flavor) {
  74. return DataFlavor.imageFlavor.equals(flavor);
  75. }
  76.  
  77. public Object getTransferData(DataFlavor flavor)
  78. throws UnsupportedFlavorException, IOException {
  79. if (isDataFlavorSupported(flavor))
  80. return image;
  81. throw new UnsupportedFlavorException(flavor);
  82. }
  83.  
  84. };
  85. Toolkit.getDefaultToolkit().getSystemClipboard().setContents(trans,
  86. null);
  87. }
  88.  
  89. /**
  90. * 5.通过流获取,可读取图文混合
  91. */
  92. public void getImageAndTextFromClipboard() throws Exception{
  93. Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard();
  94. Transferable clipTf = sysClip.getContents(null);
  95. DataFlavor[] dataList = clipTf.getTransferDataFlavors();
  96. int wholeLength = 0;
  97. for (int i = 0; i < dataList.length; i++) {
  98. DataFlavor data = dataList[i];
  99. if (data.getSubType().equals("rtf")) {
  100. Reader reader = data.getReaderForText(clipTf);
  101. OutputStreamWriter osw = new OutputStreamWriter(
  102. new FileOutputStream("d:\\test.rtf"));
  103. char[] c = new char[1024];
  104. int leng = -1;
  105. while ((leng = reader.read(c)) != -1) {
  106. osw.write(c, wholeLength, leng);
  107. }
  108. osw.flush();
  109. osw.close();
  110. }
  111. }
  112. }
  113. }

Java读取粘贴板内容的更多相关文章

  1. JS读取粘贴板内容

    1.1     监听onpaste事件 1.1.1 定义和用法 npaste 事件在用户向元素中粘贴文本时触发. 注意: 虽然使用的 HTML 元素都支持 onpaste 事件,但实际上并非支持所有元 ...

  2. java读取txt文件内容

    package read; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public ...

  3. Java 读取文件的内容

    Java 读取文件的内容 1) CLASS_NAME: 换成自己真实的类名 2) /page/test.json: 换成自己真实的page 3) FileUtils: 来自于org.apache.co ...

  4. java读取excel文件内容

    1.导入依赖JAR包 <!-- jxl 操作excel --> <dependency> <groupId>org.jxls</groupId> < ...

  5. 实验10—— java读取歌词文件内容动画输出

    1.Read.java package cn.tedu.demo; import java.io.BufferedReader; import java.io.File; import java.io ...

  6. JAVA读取Excel中内容(HSSF和Workbook两种方法)

    内容添加,以前是用的HSSF,前几天帮同学写一个统计表用了Workbook,现在码一下. ---新内容(Workbook)--- 同学要统计一个xls表格,让表1里面的某一列内容对表2里面的每列进行匹 ...

  7. Java 读取 txt 文件内容到容器 List

    方法一: 一.桌面上准备 DataObject.txt 文件,内容为: 二.打开 Eclipse,编写代码如下: import java.io.BufferedReader; import java. ...

  8. Java 读取Excel 文件内容

    在一个项目中,有一个需求,是把excel文件的内容转换为xml格式展示.在学习如何操作的过程中,首先是如何获取excel文件,其中操作的代码如下: 1.首先是导入需要的 jar, 下载地址:https ...

  9. Java读取各种文件格式内容

    所需的jar包哦也不要太记得了,大家可以搜搜,直接上代码: import java.io.BufferedInputStream; import java.io.File; import java.i ...

随机推荐

  1. Easyui里面动态设置输入框的可见性

    JQuery EasyUI 动态隐藏   一.隐藏datagrid某一列 $('#dg').datagrid('hideColumn', 'field'); 二.隐藏html的lable.input标 ...

  2. POJ1330 Nearest Common Ancestors (JAVA)

    经典LCA操作.. 贴AC代码 import java.lang.reflect.Array; import java.util.*; public class POJ1330 { // 并查集部分 ...

  3. Linux新手随手笔记1.9-使用Apache搭建网站

    搭建网站 网站服务:让用户能够通过浏览器访问到的服务器上的文档资源. 对比Windows 和Linux部署服务方法对比 Windows:IIS Linux      :Apache ,nginx Ap ...

  4. git克隆和上传项目

    软件环境: 1. VS2017 2. Git ver 2.17.0.1 3. gitee.com 目的: 已有的本地项目(新建)上传到码云,使本地可以和码云同步 尝试: 先在码云上建立项目,项目名称和 ...

  5. Codeforces - tag::graphs 大合集 [占坑]

    520B 给定初始n和目标m,存在两种操作\(-1\)和\(×2\),要求最少操作次数 无脑解法是BFS,不能解决稍大的规模 当n>m时,输出n-m 否则逆向处理,转换为m到n的最小操作次数,存 ...

  6. 论文阅读 | CornerNet:Detecting Objects as Paired Keypoints

    论文地址:https://arxiv.org/abs/1808.01244v1 论文代码:https://github.com/umich-vl/CornerNet 概述 CornerNet是一篇发表 ...

  7. 页面多个 swiper 互补冲突

    方法一:精简版 $(".swiper-container").each(function(){ $(this).swiper({ loop: true, initialSlide ...

  8. jQuery懒加载插件 – jquery.lazyload.js

    Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预 ...

  9. 【Web开发】一、页面布局

    一.Frame <frameset id="topFrameSet" rows="69,*" border="0" framespac ...

  10. Log4J2 配置文件模板及代码说明

    Log4j是Apache的著名项目,随着Java应用的越来越广泛,对日志性能等方面的要求也越来越高.Log4j的升级版本Log4j2在前些年发布.Log4J2的优点和好处有很多,可以自行搜索查阅相关文 ...