您的位置:首页 > 编程语言 > Java开发

Java 操作剪切板

2015-12-01 16:05 661 查看
【1. 工具类 :】

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: