Java取得剪贴板中的内容数据
2018-07-20 来源:open-open
ClipboradOperate.java
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.io.IOException; public class ClipboradOperate { /**@Description: * @author zhk * @createtime 2012-7-12 上午11:33:06 * @param args */ public static void main(String[] args) { Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();//获取系统剪贴板 try { ImageViewer im=new ImageViewer(getImageFromClipboard()); }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 从指定的剪切板中获取文本内容 * 本地剪切板使用 Clipborad cp = new Clipboard("clip1"); 来构造 * 系统剪切板使用 Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard(); * 剪切板的内容 getContents(null); 返回Transferable */ protected static String getClipboardText() throws Exception{ Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();//获取系统剪贴板 // 获取剪切板中的内容 Transferable clipT = clip.getContents(null); if (clipT != null) { // 检查内容是否是文本类型 if (clipT.isDataFlavorSupported(DataFlavor.stringFlavor)) return (String)clipT.getTransferData(DataFlavor.stringFlavor); } return null; } //往剪切板写文本数据 protected static void setClipboardText(Clipboard clip, String writeMe) { Transferable tText = new StringSelection(writeMe); clip.setContents(tText, null); } // 从剪切板读取图像 public static Image getImageFromClipboard() throws Exception{ 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; } // 写图像到剪切板 protected static void setClipboardImage2(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); } }
ImageViewer.java
/* * 查看图形的窗口 */ import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracker; import java.awt.Toolkit; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; /** * 用于显示图形的窗口 */ public class ImageViewer extends Frame { private Image image; /** * 显示一个图像 * @param viewMe */ public ImageViewer(Image viewMe) { image = viewMe; MediaTracker mediaTracker = new MediaTracker(this); mediaTracker.addImage(image, 0); try { mediaTracker.waitForID(0); } catch (InterruptedException ie) { ie.printStackTrace(); System.exit(1); } addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); //窗口适应图像大小 setSize(image.getWidth(null), image.getHeight(null)); //窗口标题 setTitle("Viewing Image from Clipboard"); setVisible(true); } public void paint(Graphics graphics) { graphics.drawImage(image, 0, 0, null); } /** * 用于读取图像文件并生成Image对象 */ public static Image getImageFromFile(String fileName) { Toolkit toolkit = Toolkit.getDefaultToolkit(); Image image = toolkit.getImage(fileName); return image; } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
下一篇: iOS支付宝支付主要代码
最新资讯
热门推荐