public Image getClipboardImage() {
//获得当前系统剪切板内容到Transferable(这是一个Java提供的剪切板数据包装对象)
Transferable transferable = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
//当剪切板数据存在,并且类型为图片时
if (transferable != null
&& transferable.isDataFlavorSupported(DataFlavor.imageFlavor)) {
//转换数据为Image并返回
try {
return (Image) transferable
.getTransferData(DataFlavor.imageFlavor);
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
//获得当前系统剪切板内容到Transferable(这是一个Java提供的剪切板数据包装对象)
Transferable transferable = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
//当剪切板数据存在,并且类型为图片时
if (transferable != null
&& transferable.isDataFlavorSupported(DataFlavor.imageFlavor)) {
//转换数据为Image并返回
try {
return (Image) transferable
.getTransferData(DataFlavor.imageFlavor);
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
一曰Flavor,代表数据的格式,是简单的字符串,还是RichText(带格式的文本)、磁盘文件、图片还是其他什么。可以让应用程序选择是否接受或者以怎样的方式处置。比如,同样一段RichText,copy到记事本和copy到Word是两个效果。二曰Transferrable,也就是数据本身,getContents时Flavor参数不同,如上所述,得到的内容也可能不一样。