`

java swing从剪切板黏贴图片粘贴图片

阅读更多

java swing从剪切板黏贴图片



 

 

代码:

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;
		
		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;
                } else if (obj22 instanceof sun.awt.image.MultiResolutionCachedImage) {//兼容mac os
                    sun.awt.image.MultiResolutionCachedImage cachedImage = (sun.awt.image.MultiResolutionCachedImage) obj22;
                    if (null == cachedImage) {
                        return null;
                    }
                    sun.awt.image.ToolkitImage toolkitImage = (sun.awt.image.ToolkitImage) cachedImage.getScaledInstance(cachedImage.getWidth(null), cachedImage.getHeight(null), Image.SCALE_SMOOTH);
                    if (null == toolkitImage) {
                        return null;
                    }
                    java.awt.image.FilteredImageSource filteredImageSource = (java.awt.image.FilteredImageSource) ReflectHWUtils.getObjectValue(toolkitImage, "source");
                    if (null == filteredImageSource) {
                        return null;
                    }
                    sun.awt.image.OffScreenImageSource imageSource = (sun.awt.image.OffScreenImageSource) ReflectHWUtils.getObjectValue(filteredImageSource, "src");
                    image = (BufferedImage) ReflectHWUtils.getObjectValue(imageSource, "image");
//					System.out.println(imageSource);
                }
			}
			}
		} catch (UnsupportedFlavorException e1) {
			e1.printStackTrace();
			GUIUtil23.errorDialog(e1);
		} catch (IOException e1) {
			e1.printStackTrace();
			GUIUtil23.errorDialog(e1);
		}
//		}
        catch (SecurityException e) {
            e.printStackTrace();
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }

		
		
		return 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));
	}

 

 

 

 

  • 大小: 63 KB
  • 大小: 196 KB
0
0
分享到:
评论

相关推荐

    java Swing读取图片

    本篇文章将详细讲解如何在Java Swing中读取和显示图片,以及与之相关的知识点。 首先,我们需要了解Java中的图像处理类。`java.awt.Image`类是表示图像的基本类,它提供了加载、显示和操作图像的方法。而`javax....

    java swing 画图板

    在这个"java swing 画图板"项目中,开发者仿照了Windows操作系统中的“画图”程序,提供了一个基本的绘图环境。下面将详细讨论相关的Java Swing知识点。 1. **组件(Components)**:在Swing中,JFrame是窗口的基础...

    java swing漂亮界面(超酷) javaswing教程

    Java Swing 是Java编程语言中用于构建桌面应用程序用户界面的一个库,它是Java Foundation Classes (JFC) 的一部分。Swing 提供了一系列组件,如按钮、文本框、菜单等,用于创建功能丰富的图形用户界面(GUI)。在...

    java swing漂亮界面 超酷 javaswing教程

    Java Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分,用于帮助开发者创建桌面应用程序。Swing提供了一系列组件,如按钮、文本框、菜单等,允许开发者构建功能...

    java Swing多Jpanel动态滑动切换效果

    java Swing多Jpanel仿安卓苹果桌面动态切换滑动效果

    Java截屏保存系统剪切板

    Java截屏保存系统剪切板是一项实用的技术,它允许用户通过编程方式截取屏幕快照,并将该图像存储到系统剪贴板中,以便于后续的复制和粘贴操作。这项技术主要基于Java的标准版(Java SE)环境,利用了Java的AWT和...

    java+swing漂亮软件界面+超酷+以及javaswing教程.7z

    Java Swing 是Java平台上用于构建图形用户界面(GUI)的一个库,它是Java Foundation Classes (JFC)的一部分。在Java中,Swing提供了丰富的组件集,允许开发者创建美观且功能强大的桌面应用程序。"java+swing漂亮...

    基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统,小白必看!

    基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统,小白必看! 基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统,小白必看! 基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统...

    java 复制图片到剪切板

    在Java编程中,将图片复制到剪贴板是一项常见的任务,尤其在开发图形用户界面(GUI)应用时。本文将详细讲解如何实现这个功能,并结合给出的“qrcode_swing”这一标签,我们可以推断这是一个关于Swing组件库中处理...

    javaSwing皮肤大全.rar

    Java Swing 是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件和工具,用于构建桌面应用程序。Swing 提供了一种可定制外观和感觉(LookAndFeel)的方法,使得开发者可以改变应用的视觉风格,以满足不同用户...

    Java Swing做的图片浏览器

    在这个特定的案例中,"Java Swing做的图片浏览器"是一个利用Java Swing开发的应用程序,主要用于查看图片。这个小巧的程序只有几百KB,具有保存浏览历史的功能,允许用户在已浏览过的图片之间方便地切换,通过点击...

    java swing 浮动面板

    Java Swing 是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件和工具,用于构建桌面应用程序。在Swing中,浮动面板(Floating Panel)是一种可自定义定位和移动的组件,通常用于创建灵活且交互性强的用户...

    基于java swing实现答题系统

    基于Java Swing实现答题系统的技术要点 本文将详细介绍基于Java Swing实现答题系统的技术要点,涵盖了GUI设计、事件处理、swing组件使用、Java图形化编程等多个方面的知识点。 一、GUI设计 在本文中,我们使用了...

    java swing串口通信源码

    Java Swing 是Java GUI(图形用户界面)开发的一个关键库,它提供了一系列的组件来构建桌面应用程序。在Java Swing中实现串口通信可以帮助开发者创建能够与硬件设备交互的应用,例如读取或发送数据到通过串行端口...

    基于 java swing 开发的资源管理器。使用 java swing 美化包beautyeye对原生的 java.zip

    【标题】:基于Java Swing开发的资源管理器利用了BeautyEye美化库,为原生的Java ZIP功能提供了更美观的用户界面。 【描述】:在Java编程中,Swing是用于构建图形用户界面(GUI)的工具包。它提供了一系列组件,如...

    java swing程序 实现点击图片列表 改变图片

    本示例主要讨论如何使用Java Swing来实现一个程序,该程序允许用户通过点击下拉列表(JComboBox)来展示不同的图片。这个功能是通过结合使用JComboBox、CardLayout布局管理器以及对图片的处理来完成的。下面我们将...

    基于Java Swing的物业管理系统源码+数据库(95分以上课程设计).zip

    基于Java Swing的物业管理系统源码+数据库(95分以上课程设计).zip 已获高分通过项目,代码完整下载即用,无需修改确保可以运行。 基于Java Swing的物业管理系统源码+数据库(95分以上课程设计).zip 已获高分...

    JavaSwing图形界面开发与案例详解源代码

    Java Swing是目前图形界面设计的主流开发工具,《Java Swing图形界面开发与案例详解[1]》从实用的角度出发,通过大量实例全面介绍Java Swing中各种组件的应用及图形界面的开发技术。《Java Swing图形界面开发与案例...

    Swing模板样式(全56种经典)

    Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分。在Java中,Swing提供了丰富的组件库,用于创建美观且功能强大的桌面应用程序。Swing模板样式,即Swing组件的外观...

Global site tag (gtag.js) - Google Analytics