码迷,mamicode.com
首页 > 编程语言 > 详细

java 粘贴图片

时间:2015-06-28 17:36:58      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:java-swing

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博客主页

java 粘贴图片

标签:java-swing

原文地址:http://blog.csdn.net/hw1287789687/article/details/46672517

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!