java swing 把JTextArea导出为图片

简介:

Java swing中如何把JTextArea 导出成为一张图片(jpg或png)呢?

核心方法:

Java代码   收藏代码
  1. /*** 
  2.          * convert JTextArea to image 
  3.          * @param ta 
  4.          * @param destFile 
  5.          * @param format 
  6.          */  
  7.         public static File genericImage(JTextArea ta,File destFile,String format){//TODO 如何提高分辨率  
  8.             BufferedImage img = new BufferedImage(ta.getWidth(), ta.getHeight(), BufferedImage.TYPE_INT_RGB);  
  9.             Graphics2D g2d = img.createGraphics();  
  10.             ta.printAll(g2d);  
  11.             g2d.dispose();  
  12.             try {  
  13.                 ImageIO.write(img, format/*"jpg"*/, destFile);  
  14.             } catch (IOException ex) {  
  15.                 ex.printStackTrace();  
  16.             }  
  17.             return destFile;  
  18.         }  

调用:

Java代码   收藏代码
  1. private void chooseDestFile(JTextArea ta,String picFormat){  
  2.         JFileChooser chooser = new JFileChooser();  
  3.         chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);  
  4.         File selectedFile=new File("C:\\Users\\Administrator\\Pictures\\"+TimeHWUtil.formatDate(new Date(), "yyyyMM"));  
  5.         //home目录应该动态获取  
  6. //        System.out.println(selectedFile.getAbsolutePath());  
  7.         if(!ValueWidget.isNullOrEmpty(selectedFile)){  
  8.             chooser.setSelectedFile(selectedFile);  
  9.         }  
  10.         chooser.setName("二维码."+picFormat);  
  11.         FileNameExtensionFilter filter = new FileNameExtensionFilter(  
  12.                 "picture Files", picFormat, "二维码");  
  13.             chooser.setFileFilter(filter);  
  14.         chooser.setDialogType(JFileChooser.SAVE_DIALOG);  
  15.         chooser.setControlButtonsAreShown(true);  
  16.         chooser.setDialogTitle("保存二维码");  
  17.         //            chooser.setVisible(true);  
  18.         int result = chooser.showSaveDialog(ta);  
  19.         System.out.println("New file:" + result);  
  20.         if (result == JOptionPane.OK_OPTION)  
  21.         {  
  22.             selectedFile = chooser.getSelectedFile();  
  23.             if(! SystemHWUtil.isHasSuffix(selectedFile)){  
  24.                 selectedFile=new File(selectedFile.getAbsolutePath()+ SystemHWUtil.ENGLISH_PERIOD+picFormat);  
  25.             }  
  26.             ImageHWUtil.genericImage(ta, selectedFile, picFormat);  
  27.             System.out.println("select file:" + selectedFile);  
  28.         }  
  29.     }  

  

界面如下图:

 

相关文章
|
3月前
|
Java
Java开发实现图片URL地址检验,如何编码?
【10月更文挑战第14天】Java开发实现图片URL地址检验,如何编码?
107 4
|
3月前
|
缓存 easyexcel Java
Java EasyExcel 导出报内存溢出如何解决
大家好,我是V哥。使用EasyExcel进行大数据量导出时容易导致内存溢出,特别是在导出百万级别的数据时。以下是V哥整理的解决该问题的一些常见方法,包括分批写入、设置合适的JVM内存、减少数据对象的复杂性、关闭自动列宽设置、使用Stream导出以及选择合适的数据导出工具。此外,还介绍了使用Apache POI的SXSSFWorkbook实现百万级别数据量的导出案例,帮助大家更好地应对大数据导出的挑战。欢迎一起讨论!
336 1
|
3月前
|
Java
Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
【10月更文挑战第14天】Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
76 2
|
17天前
|
存储 IDE Java
漂亮不是梦!Java Swing美化攻略
Java Swing 是一个为 Java 设计的 GUI 工具包,提供文本框、按钮等组件。尽管其外观可定制,通过 Look and Feel(LAF)机制改变应用风格,如 Darcula 和 FlatLaf,但现已淡出主流视野,主要应用于 IDE 领域,如 IntelliJ IDEA 和 Eclipse。相比其他 GUI 框架,Swing 的发展前景有限。
41 1
|
3月前
|
算法 Java Linux
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
这篇文章介绍了如何使用Java的Graphics2D类在图片上合成另一个照片,并将照片切割成圆形头像的方法。
63 1
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
|
2月前
|
Java API Apache
|
2月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
99 4
|
3月前
|
Java 数据安全/隐私保护
Java ffmpeg 实现视频加文字/图片水印功能
【10月更文挑战第22天】在 Java 中使用 FFmpeg 实现视频加文字或图片水印功能,需先安装 FFmpeg 并添加依赖(如 JavaCV)。通过构建 FFmpeg 命令行参数,使用 `drawtext` 滤镜添加文字水印,或使用 `overlay` 滤镜添加图片水印。示例代码展示了如何使用 JavaCV 实现文字水印。
229 1
|
3月前
|
前端开发 小程序 Java
java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机
这篇文章介绍了Java中Map的遍历方法、使用Pattern和matches进行正则表达式匹配,以及后端向前端传输图片并保存到手机的三种情况。
33 1
|
3月前
|
算法 Java Linux
java制作海报四:java BufferedImage 转 InputStream 上传至OSS。png 图片合成到模板(另一个图片)上时,透明部分变成了黑色
这篇文章主要介绍了如何将Java中的BufferedImage对象转换为InputStream以上传至OSS,并解决了png图片合成时透明部分变黑的问题。
138 1
下一篇
开通oss服务