如何保存Icon对象为通过的JFileChooser的文件?

我里面有我救了我的ImageIcon这样一个JLabel:

ImageIcon imageIcon = sample.map(); // a map method create an ImageIcon object imageLabel.setIcon(imageIcon); imageLabel.setVisible(true);

现在,我想保存项目菜单上单击当此ImageIcon的对象保存成PNG文件。

private void imageActionPerformed(java.awt.event.ActionEvent evt) { Icon pic = imageLabel.getIcon(); JFileChooser fileChooser = new JFileChooser("C:/"); fileChooser.setSelectedFile(file); // this filter will allow just PNG extension FileFilter filter = new MyCustomFilter2(); fileChooser.setFileFilter(filter); int returnVal = fileChooser.showSaveDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { File fileToSave = fileChooser.getSelectedFile(); } else { System.out.println("File access cancelled by user."); } }

是的,我知道这个代码是错误的,有些部分缺失,我觉得我应该以某种方式保存我叫PIC图标对象转换为File对象。 这是我的假设。 我如何能做到这一点吗?

感谢您的帮助,

米哈尔。

下面是我的源代码

private void imageActionPerformed(java.awt.event.ActionEvent evt) { try{ Icon image = imageLabel.getIcon(); BufferedImage bi = new BufferedImage(image.getIconWidth(),image.getIconHeight(),BufferedImage.TYPE_INT_RGB); Graphics g = bi.createGraphics(); File file = new File("outputFile"); JFileChooser fileChooser = new JFileChooser("C:/"); fileChooser.setSelectedFile(file); FileFilter filter = new MyCustomFilter2(); fileChooser.setFileFilter(filter); int returnVal = fileChooser.showSaveDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { ImageIO.write(bi, "PNG", file); File fileToSave = fileChooser.getSelectedFile(); } else { System.out.println("File access cancelled by user."); } } catch(IOException e){ e.printStackTrace(); } }

--------------解决方案-------------

File由JFileChooser所返回的对象只是表示磁盘,用户想保存文件的位置。 之后,你会希望使用ImageIO.write()将文件保存到磁盘。

例如

ImageIO.write(image, "png", file);

如果你有一个图标,我想你可能需要将其转换成一个BufferedImage之前,你可以将它保存。

分类:java的 时间:2012-01-01 人气:0
分享到:

相关文章

  • 如何恢复我的Java文件的Netbeans中以前的格式 2012-05-01

    我使用的BufferedWriter写一些文字到不同的文件在Netbeans的一个代码生成框架的一部分. 当我跑的主类的测试,我无法找到所有参与测试在前面的包类的文件. 相反,他们是在默认的包,当我打开的文件,我是不是能够看到普通文本. 我只看到一个格式化窗口顶部一个长水平线,显示错误; "非法字符". 该文件的大小仍然是相当于他们每个人的文字,我觉得这个问题是唯一text.I的格式使用本地历史>反向只删除拿到没有变化. 没有任何一个有一个想法如何解决这个PBM? 我使用的代码如

  • 问题部署WAR文件从NetBeans中到Tomcat 2012-02-28

    我想要配置的build.xml文件的Build Forge,但似乎我有所需的Java Servlet的网页库的麻烦. 我其实是想用OWASP的AntiSamy库,但我不断收到策略例外后跟文件未找到 org.owasp.validator.html.PolicyException:java.io.FileNotFoundException:C:\ PROGRAM%20Files \Apache%20Software%20Foundation\apache-tomcat-6.0.29\webapps

  • java.policy文件在Vista中不工作? 2012-09-15

    我写了一个Java小程序(fileIOApp.class),我有我的桌面上,有一些相关的HTML代码,它把这个小程序到浏览器中. Applet要求文件的读/写权限. 我编辑java.policy文件在"C:\ Program Files文件\ JRE6 \ lib \ security中\ java.policy文件",包括像这样的一行: grant codeBase "file:/C:/-" { permission.java.security.AllPermis

  • 如何调试Java类文件在Eclipse中运行Ant脚本时? 2014-01-30

    我从日食太阳神运行Ant脚本. 它执行在同一个工作区的java的文件. 如何调试Java代码? 我已经把线破发点并运行调试模式下运行脚本,但控制没有在Java类文件去. 它会在蚂蚁脚本,我把破发点

  • 怎样的Java文件命名Netbeans中的作品? 2012-07-18

    我的文件夹结构如下所示: src\java\com\company\resources\xmlFile.xml XML文件在包com.company.resources. 我使用NetBeans,所以这里是结构的图片: 我想通过XML文件作为一个字符串,这在另一个罐子中发现的静态​​方法的地址: public static String createXMLStringFromDocument(String fileName){ try { DocumentBuilderFactory docum

  • Java程序运行流畅Netbeans中但慢慢地在Eclipse并作为一个可执行的JAR。 跆拳道? 2012-02-04

    ,做频繁摆动/ AWT的绘图动画(但没有什么比g.fillOval(...)更高级的)的Java程序在Netbeans的一致60fps的运行,并在约6fps的时候在Eclipse运行或从一个jar文件执行UNIX终端. 该计划是在Netbeans的开发和正在运行的设施,工厂的桌面应用程序(而不是在webstart或JApplet的或......). 这是在Ubuntu 10与Java 1.6的发生. 这怎么可能? 宇宙不再对我来说很有意义. $ Java的版本 Java版本"1.6.0_22&q

  • 无法到达的Java类文件在测试服务器中部署时 2013-03-14

    我使用的开发,测试和生产阶段Tomcat服务器第6节. 我在Tomcat服务器实施BlazeDS的web应用工程开发环境的罚款. 我使用的csv文件作为平板数据库,该文件位于Tomcat的webapps文件夹我的应用程序目录. 我得到通过检索路径连接到这个平面文件 ServletContext sc = config.getServletContext(); String App_path = sc.getRealPath("/"); 当我在测试服务器部署的问题出现了. 我不知道哪里出

  • Windows Movie Maker中 - 文件太大无法保存为一个视频 - 只有44秒! 2012-08-07

    你好 我在Windows 7上试图把视频在一起. 当我去保存短片 - 那么YouTube格式,它不保存它,有8个片段,在那里一个音乐循环,但它只有44秒,它说,没有足够的空间. 有足够的空间,我的硬盘驱动器和视频区之下. 请让我知道我能做些什么来解决这个问题 - 我试图把一个母亲节视频! 谢谢 --------------解决方案------------- 什么是你的视频,照片和音频文件格式? 嗨,我有MP4视频,MP3音乐和AVI视频 我想尝试一个测试,你删除音乐. 然后的视频格式之一,那么其

  • 如何添加一个txt文件到NetBeans中的数据库表 2013-06-24

    我想一些数据的添加到表在NetBeans. 我在.txt和.xls格式的值. 有没有办法将其插入到表? 我发现这个环节做的工作. 链接,但它显示一个错误,当我执行这段代码 Create or Replace Directory cre_dir as 'C:\Users\Srinivasan\Desktop\SQL'; 错误 Error code -1, SQL state 42X01: Syntax error: Encountered "OR" at line 1, column 8

  • 如何检测的Java应用程序在Netbeans中锁定? 2013-10-09

    我的Java应用程序有时会锁起来,甚至不会到窗口关闭鼠标点击反应,为什么? 我使用Netbean为IDE,我不得不使用"取消运行任务"退出锁定应用程序,有没有办法为它检测到的原因和解决? --------------解决方案------------- 这通常意味着什么霸占了UI线程. 为了弄清,使用调试器暂停所有线程,当你的应用程序挂起. 然后找到UI线程,看看它是.

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 2.083 (s). 10 q(s)