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)); }
相关推荐
本篇文章将详细讲解如何在Java Swing中读取和显示图片,以及与之相关的知识点。 首先,我们需要了解Java中的图像处理类。`java.awt.Image`类是表示图像的基本类,它提供了加载、显示和操作图像的方法。而`javax....
在这个"java swing 画图板"项目中,开发者仿照了Windows操作系统中的“画图”程序,提供了一个基本的绘图环境。下面将详细讨论相关的Java Swing知识点。 1. **组件(Components)**:在Swing中,JFrame是窗口的基础...
Java Swing 是Java编程语言中用于构建桌面应用程序用户界面的一个库,它是Java Foundation Classes (JFC) 的一部分。Swing 提供了一系列组件,如按钮、文本框、菜单等,用于创建功能丰富的图形用户界面(GUI)。在...
Java Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分,用于帮助开发者创建桌面应用程序。Swing提供了一系列组件,如按钮、文本框、菜单等,允许开发者构建功能...
java Swing多Jpanel仿安卓苹果桌面动态切换滑动效果
Java截屏保存系统剪切板是一项实用的技术,它允许用户通过编程方式截取屏幕快照,并将该图像存储到系统剪贴板中,以便于后续的复制和粘贴操作。这项技术主要基于Java的标准版(Java SE)环境,利用了Java的AWT和...
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编程中,将图片复制到剪贴板是一项常见的任务,尤其在开发图形用户界面(GUI)应用时。本文将详细讲解如何实现这个功能,并结合给出的“qrcode_swing”这一标签,我们可以推断这是一个关于Swing组件库中处理...
Java Swing 是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件和工具,用于构建桌面应用程序。Swing 提供了一种可定制外观和感觉(LookAndFeel)的方法,使得开发者可以改变应用的视觉风格,以满足不同用户...
在这个特定的案例中,"Java Swing做的图片浏览器"是一个利用Java Swing开发的应用程序,主要用于查看图片。这个小巧的程序只有几百KB,具有保存浏览历史的功能,允许用户在已浏览过的图片之间方便地切换,通过点击...
Java Swing 是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件和工具,用于构建桌面应用程序。在Swing中,浮动面板(Floating Panel)是一种可自定义定位和移动的组件,通常用于创建灵活且交互性强的用户...
基于Java Swing实现答题系统的技术要点 本文将详细介绍基于Java Swing实现答题系统的技术要点,涵盖了GUI设计、事件处理、swing组件使用、Java图形化编程等多个方面的知识点。 一、GUI设计 在本文中,我们使用了...
Java Swing组件写的游戏客户端Java Swing组件写的游戏客户端 Java Swing组件写的游戏客户端Java Swing组件写的游戏客户端 Java Swing组件写的游戏客户端Java Swing组件写的游戏客户端 Java Swing组件写的游戏客户端...
Java Swing 是Java GUI(图形用户界面)开发的一个关键库,它提供了一系列的组件来构建桌面应用程序。在Java Swing中实现串口通信可以帮助开发者创建能够与硬件设备交互的应用,例如读取或发送数据到通过串行端口...
Java Swing是Java标准库中的一个组件集合,用于构建桌面应用程序用户界面。它是Java Foundation Classes (JFC)的一部分,提供了一套轻量级的GUI(图形用户界面)组件,支持丰富的交互功能。本离线API文档详细阐述了...
本示例主要讨论如何使用Java Swing来实现一个程序,该程序允许用户通过点击下拉列表(JComboBox)来展示不同的图片。这个功能是通过结合使用JComboBox、CardLayout布局管理器以及对图片的处理来完成的。下面我们将...
基于Java Swing的物业管理系统源码+数据库(95分以上课程设计).zip 已获高分通过项目,代码完整下载即用,无需修改确保可以运行。 基于Java Swing的物业管理系统源码+数据库(95分以上课程设计).zip 已获高分...
Java Swing是目前图形界面设计的主流开发工具,《Java Swing图形界面开发与案例详解[1]》从实用的角度出发,通过大量实例全面介绍Java Swing中各种组件的应用及图形界面的开发技术。《Java Swing图形界面开发与案例...