java 复制到剪切板
程序员文章站
2022-05-16 09:28:12
...
package com.zzstxx.barcode.utils;
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.File;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
* java 复制到剪切板
* @author Administrator
*
*/
public class CutBanUtils {
/**
* 复制String到剪切板
*
* @param writeMe
*/
protected static void setClipboardText(String writeMe) {
Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable tText = new StringSelection(writeMe);
sysc.setContents(tText, null);
}
/**
* 赋值图像到剪切板
* @param image
*/
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);
}
/**
* 读取图片地址,把图片写入图片缓冲区
* @param imagePath
* @return
* @throws IOException
*/
public static BufferedImage readImage(String imagePath) throws IOException{
File f = new File(imagePath);
BufferedImage bi = ImageIO.read(f);
return bi;
}
/**
* 方法一:把图片读入缓冲区后复制到剪切板
* @param imagePath
*/
public static void copyCut(String imagePath){
BufferedImage image = null;
try {
image = CutBanUtils.readImage(imagePath);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
CutBanUtils.setClipboardImage(image);
}
/**
* 方法二:一般图像没问题,如果是二维条码的话,建议使用方法一
* @param filePath
*/
public static void copyCutByToolkit(String filePath){
Image image = Toolkit.getDefaultToolkit().getImage(filePath);
CutBanUtils.setClipboardImage(image);
}
public static void main(String[] args) {
//CutBanUtils.setClipboardText("周旭锋");
CutBanUtils.copyCutByToolkit("e:/1.jpg");
//CutBanUtils.copyCut("e://1.jpg");
}
}
上一篇: vba
下一篇: VueI18n多语言
推荐阅读
-
JDK1.9怎么安装配置?Java SE 9(JDK9)详细安装教程+环境变量配置方法
-
java中hashCode和equals什么关系,hashCode到底怎么用的
-
java中finally块儿是怎么工作的?有什么意义?
-
java中哪块代码或说什么代码应该放在try块中呢?
-
java中为什么接口中的属性和方法都默认为public?
-
java多线程关键字volatile、lock、synchronized
-
spring boot从redis取缓存发生java.lang.ClassCastException异常
-
java中如果我老是少捕获什么异常,如何处理?
-
java中如何能知道应该捕获什么样的异常?举例
-
java中如何用urlrewritefilter实现网站伪静态?