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 { 
    [email protected]:  
     * @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; 
    } 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11013.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论