Java取得剪貼板中的內容數據
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); }
} </pre>
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;
}
}</pre>
本文由用戶 gbd8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!