java clipboard_Java读取粘贴板内容

packagecom.test.jvm.oom.design;importjava.awt.Image;importjava.awt.Toolkit;importjava.awt.datatransfer.Clipboard;importjava.awt.datatransfer.DataFlavor;importjava.awt.datatransfer.StringSelection;importjava.awt.datatransfer.Transferable;importjava.awt.datatransfer.UnsupportedFlavorException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStreamWriter;importjava.io.Reader;public classTest {/***1. 从剪切板获得文字。*/

public staticString 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();

}

}

}returnret;

}/*** 2.将字符串复制到剪切板。*/

public static voidsetSysClipboardText(String writeMe) {

Clipboard clip=Toolkit.getDefaultToolkit().getSystemClipboard();

Transferable tText= newStringSelection(writeMe);

clip.setContents(tText,null);

}/***3. 从剪切板获得图片。*/

public static Image getImageFromClipboard() throwsException {

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;

}/*** 4.复制图片到剪切板。*/

public static void setClipboardImage(final Image image)throwsException {

Transferable trans= newTransferable() {publicDataFlavor[] getTransferDataFlavors() {return newDataFlavor[] { DataFlavor.imageFlavor };

}public booleanisDataFlavorSupported(DataFlavor flavor) {returnDataFlavor.imageFlavor.equals(flavor);

}publicObject getTransferData(DataFlavor flavor)throwsUnsupportedFlavorException, IOException {if(isDataFlavorSupported(flavor))returnimage;throw newUnsupportedFlavorException(flavor);

}

};

Toolkit.getDefaultToolkit().getSystemClipboard().setContents(trans,null);

}/*** 5.通过流获取,可读取图文混合*/

public void getImageAndTextFromClipboard() throwsException{

Clipboard sysClip=Toolkit.getDefaultToolkit().getSystemClipboard();

Transferable clipTf= sysClip.getContents(null);

DataFlavor[] dataList=clipTf.getTransferDataFlavors();int wholeLength = 0;for (int i = 0; i < dataList.length; i++) {

DataFlavor data=dataList[i];if (data.getSubType().equals("rtf")) {

Reader reader=data.getReaderForText(clipTf);

OutputStreamWriter osw= newOutputStreamWriter(new FileOutputStream("d:\\test.rtf"));char[] c = new char[1024];int leng = -1;while ((leng = reader.read(c)) != -1) {

osw.write(c, wholeLength, leng);

}

osw.flush();

osw.close();

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值