java 粘贴图片

来源:互联网 发布:淘宝运营策划书的论文 编辑:程序博客网 时间:2024/05/01 03:08

java swing 程序中如何获取剪切板中的图片呢?
下面是我做的一个java swing 图形界面:
生成二维码

右键,出现菜单,点击菜单中的”paste image”就会获取剪切板中的图片

/***     * 把系统剪切板中的图片黏贴到swing的Label控件中     */    public void pasteClipboardImageAction(){        BufferedImage bufferedimage=ComponentUtil.getClipboardImage(this.frame);        if(ValueWidget.isNullOrEmpty(bufferedimage)){            GUIUtil23.alert("系统剪切板中无图片,请先复制图片");            return;        }        image=bufferedimage;        ByteArrayOutputStream baos = new ByteArrayOutputStream();        try {//把粘贴过来的图片转为为二进制(字节数组)            ImageIO.write(bufferedimage, read_qrcode_from_pic_format/*jpg*/, baos);            QRbytes= baos.toByteArray();            ComponentUtil.appendResult(resultArea, "粘贴的二维码大小:\t"+QRbytes.length, true);        } catch (IOException e) {            e.printStackTrace();        }        qrResultLabel.setIcon(new ImageIcon(image));    }

核心方法:解析剪切板中的内容

public static BufferedImage getClipboardImage(Frame frame) {        // java.lang.ClassCastException: sun.awt.datatransfer.TransferableProxy cannot be cast to sun.awt.datatransfer.ClipboardTransferable        Transferable trans=frame.getToolkit().getSystemClipboard().getContents(null);        BufferedImage image=null;//      if(trans instanceof ClipboardTransferable){//      ClipboardTransferable clipboardTrans =(ClipboardTransferable)trans;        try {            if (null != trans && trans.isDataFlavorSupported(DataFlavor.imageFlavor)) {               Object obj22=trans.getTransferData(DataFlavor.imageFlavor);            if(!ValueWidget.isNullOrEmpty(obj22)){                if(obj22 instanceof BufferedImage){                image=(BufferedImage)obj22;                }            }            }        } catch (UnsupportedFlavorException e1) {            e1.printStackTrace();            GUIUtil23.errorDialog(e1);        } catch (IOException e1) {            e1.printStackTrace();            GUIUtil23.errorDialog(e1);        }        return image;    }

作者: 黄威
博客地址:
CSDN博客主页
itEye博客主页

0 0
原创粉丝点击