Java 操作剪切板
2015-12-01 16:05
661 查看
【1. 工具类 :】
【2. 测试类:】
【3. 源代码下载】Java 操控键盘,鼠标,剪切板Demo
package org.zgf.robot.util; import java.awt.Image; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.image.BufferedImage; import java.io.IOException; /** * @ClassName: SysClipboardUtil * @Description: Java 操控剪切板内容 * @author: zonggf * @date: 2015年12月1日 下午3:29:07 */ public class SysClipboardUtil { /** * 从剪切板获得文字。 */ 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 BufferedImage getImageFromClipboard() { try { Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard(); Transferable cc = sysc.getContents(null); if (cc == null) return null; else if (cc.isDataFlavorSupported(DataFlavor.imageFlavor)) return (BufferedImage) cc.getTransferData(DataFlavor.imageFlavor); } catch (Exception e) { e.printStackTrace(); } 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); } }
【2. 测试类:】
package org.zgf.robot.util; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import org.junit.Test; public class Test_SysClipboardUtil { /** 测试设置文本 内容到 粘贴板 */ @Test public void test_setText(){ String hello = "hello,boy"; SysClipboardUtil.setSysClipboardText(hello); } /** 测试获取粘贴板上的文字 */ @Test public void test_getText(){ System.out.println(SysClipboardUtil.getSysClipboardText()); } /** 测试设置图片到剪切板上 */ @Test public void test_setImage() throws Exception{ File file = new File("png/baidu.logo.png"); Image image = ImageIO.read(file); SysClipboardUtil.setClipboardImage(image); } /** 测试获取剪切板上的图片 */ @Test public void test_get() throws Exception{ BufferedImage image = SysClipboardUtil.getImageFromClipboard(); File file = new File("D:/baidu.logo.png"); ImageIO.write(image, "png", file); } }
【3. 源代码下载】Java 操控键盘,鼠标,剪切板Demo
相关文章推荐
- eclipse优化设置,自动提示篇
- Java 执行Windows 命令行
- eclipse 给jar包关联javadoc
- Java 操作键盘鼠标
- spring源码分析之spring-jdbc模块详解
- java常用工具类!
- 滚动面板 我的java学习之路 ,滚动面板,多线程
- 一. Spring框架防XXS跨站攻击
- JAVA 遛一遛
- 【菜鸟学Java】4:Servlet 技术
- WIN7下java环境的搭建
- Java 开发@ JDBC链接SQLServer2012
- java适配器模式
- SpringMvc之DispatcherServlet详解
- xssProject在java web项目中应用
- java有车有房有能力最基本运用
- ssh 分页struts2+hibernate3+spring 分页
- 从头认识java-11.3 格式化输出(1)
- javaSE(17)(打印流、转换流、对象流、配置文件和递归)
- eclipse手动导入dtd文件