Java操作Windows剪切板相关函数示例

简介:

以下共有4个函数分别是:
1.从剪切板获得文字。
2.将字符串复制到剪切板。
3.从剪切板获得图片。
4.复制图片到剪切板。

 

[java]  view plain  copy
  1. /** 
  2.      * 从剪切板获得文字。 
  3.      */  
  4.     public static String getSysClipboardText() {  
  5.         String ret = "";  
  6.         Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard();  
  7.         // 获取剪切板中的内容  
  8.         Transferable clipTf = sysClip.getContents(null);  
  9.   
  10.         if (clipTf != null) {  
  11.             // 检查内容是否是文本类型  
  12.             if (clipTf.isDataFlavorSupported(DataFlavor.stringFlavor)) {  
  13.                 try {  
  14.                     ret = (String) clipTf  
  15.                             .getTransferData(DataFlavor.stringFlavor);  
  16.                 } catch (Exception e) {  
  17.                     e.printStackTrace();  
  18.                 }  
  19.             }  
  20.         }  
  21.   
  22.         return ret;  
  23.     }  
  24.   
  25.     /** 
  26.      * 将字符串复制到剪切板。 
  27.      */  
  28.     public static void setSysClipboardText(String writeMe) {  
  29.         Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();  
  30.         Transferable tText = new StringSelection(writeMe);  
  31.         clip.setContents(tText, null);  
  32.     }  
  33.   
  34.     /** 
  35.      * 从剪切板获得图片。 
  36.      */  
  37.     public static Image getImageFromClipboard() throws Exception {  
  38.         Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();  
  39.         Transferable cc = sysc.getContents(null);  
  40.         if (cc == null)  
  41.             return null;  
  42.         else if (cc.isDataFlavorSupported(DataFlavor.imageFlavor))  
  43.             return (Image) cc.getTransferData(DataFlavor.imageFlavor);  
  44.         return null;  
  45.     }  
  46.   
  47.     /** 
  48.      * 复制图片到剪切板。 
  49.      */  
  50.     public static void setClipboardImage(final Image image) {  
  51.         Transferable trans = new Transferable() {  
  52.             public DataFlavor[] getTransferDataFlavors() {  
  53.                 return new DataFlavor[] { DataFlavor.imageFlavor };  
  54.             }  
  55.   
  56.             public boolean isDataFlavorSupported(DataFlavor flavor) {  
  57.                 return DataFlavor.imageFlavor.equals(flavor);  
  58.             }  
  59.   
  60.             public Object getTransferData(DataFlavor flavor)  
  61.                     throws UnsupportedFlavorException, IOException {  
  62.                 if (isDataFlavorSupported(flavor))  
  63.                     return image;  
  64.                 throw new UnsupportedFlavorException(flavor);  
  65.             }  
  66.   
  67.         };  
  68.         Toolkit.getDefaultToolkit().getSystemClipboard().setContents(trans,  
  69.                 null);  
  70.     }  
目录
相关文章
|
4月前
|
Java
在 Java 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
123 1
|
5月前
|
存储 Java
Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。
【10月更文挑战第19天】本文详细介绍了Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。HashMap以其高效的插入、查找和删除操作著称,而TreeMap则擅长于保持元素的自然排序或自定义排序,两者各具优势,适用于不同的开发场景。
67 1
|
2月前
|
人工智能 数据处理 C#
AI Dev Gallery:微软开源 Windows AI 模型本地运行工具包和示例库,助理开发者快速集成 AI 功能
微软推出的AI Dev Gallery,为Windows开发者提供开源AI工具包和示例库,支持本地运行AI模型,提升开发效率。
104 13
|
4月前
|
Java
在Java中实现接口的具体代码示例
可以根据具体的需求,创建更多的类来实现这个接口,以满足不同形状的计算需求。希望这个示例对你理解在 Java 中如何实现接口有所帮助。
123 38
|
5月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
146 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
6月前
|
Java
java基础(11)函数重载以及函数递归求和
Java支持函数重载,即在同一个类中可以声明多个同名方法,只要它们的参数类型和个数不同。函数重载与修饰符、返回值无关,但与参数的类型、个数、顺序有关。此外,文中还展示了如何使用递归方法`sum`来计算两个数之间的和,递归的终止条件是当第一个参数大于第二个参数时。
47 1
java基础(11)函数重载以及函数递归求和
|
5月前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
78 9
|
5月前
|
Java API 网络安全
Java 发送邮件示例
本示例展示了如何使用Java编程语言发送电子邮件。通过利用JavaMail API,这段代码实现了从配置SMTP服务器,设置邮件属性,到发送邮件的全过程,为开发者提供了实用的参考。
371 11
|
5月前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
41 1
|
5月前
|
Java 编译器 C语言
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
48 3

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等