[请教]JComponent如何生成图片?????? <必定给分!!!!> 不明白你需要解决什么问题?是需要一个继承JComponent的类还是看看上面的代码是否正确? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问题是这样的! 我写了一个编辑器, 这个编辑器继承于JComponent, 现在我想把这个编辑器上所显示的内容保存成一张图片(类似于"屏幕截图").以上的代码是我测试的时候使用的,但是生成的图片是一片灰色,我想可能是没能正确的调用方法.请高手指教,谢谢!!!! 如果是在jdk1.4版本以上开发试试用ImageIOimport javax.imageio.*;java.awt.image.BufferedImage image;image = (java.awt.image.BufferedImage)ewf.createImage(500, 500);File imgFile = new File("c:/"+ewf.getWorkFlowName()+".jpeg");ImageIO.write(image,"jpeg",imgFile);这样实现的前提是image是有图像的,但是你的代码用ewf.createImage(),好像只是创建了一个image,但是image上好象是没有图像的 谢谢!! 后来发现不能使用ewf.createImage()方法, 而是直接生成一个空的BufferedImage 对象,然后调用ewf.paintComponent(g) 绘制这个Graphics 对象便可以生成图片了! ^_^try { java.awt.image.BufferedImage image; image = new java.awt.image.BufferedImage(800, 600, java.awt.image.BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); ewf.paintComponent(g); File imgFile = new File("c:/"+ewf.getWorkFlowName()+".jpeg"); FileOutputStream fos = new FileOutputStream(imgFile); BufferedOutputStream bos = new BufferedOutputStream(fos); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos); encoder.encode(image); bos.close(); return true; } catch(Exception ex) { return false; } 学了java学什么数据库比较好? 几十个经典题目,分享给大家,顺便提点我的错误 java留言板 dojo grid 分页怎么实现,急用! 我来考考大家,呵呵。 请教高手帮忙 散分:有没有明天还要上班的同志们? 空格读出来是问号,这个问号不是真的问号,indexOf('?')返回是-1 关于BEAN的使用方法 java中能不能变相继承多类? java的日期问题 如何解决编译中的这个问题?
image = (java.awt.image.BufferedImage)ewf.createImage(500, 500);
File imgFile = new File("c:/"+ewf.getWorkFlowName()+".jpeg");
ImageIO.write(image,"jpeg",imgFile);这样实现的前提是image是有图像的,但是你的代码用ewf.createImage(),
好像只是创建了一个image,但是image上好象是没有图像的
{
java.awt.image.BufferedImage image;
image = new java.awt.image.BufferedImage(800, 600,
java.awt.image.BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
ewf.paintComponent(g);
File imgFile = new File("c:/"+ewf.getWorkFlowName()+".jpeg");
FileOutputStream fos = new FileOutputStream(imgFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
encoder.encode(image);
bos.close();
return true;
}
catch(Exception ex)
{
return false;
}