以下两种方式可以将任意一个Swing组件保存为图片文件
第一种方式:
Component component = panel;
BufferedImage bi =(BufferedImage)component.createImage(component.getWidth(),component.getHeight());
component.paint(bi.getGraphics());
BufferedOutputStream out =new BufferedOutputStream(new FileOutputStream("c:/test1.jpg"));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(1.0f, false);
encoder.setJPEGEncodeParam(param);
encoder.encode(bi);
out.flush();
out.close();
第二种方式:
Component c = panel;
BufferedImage bi =(BufferedImage)c.createImage(c.getWidth(),c.getHeight());
c.paint(bi.getGraphics());
javax.imageio.ImageIO.write(bi,"jpg",new File("c:/x1.jpg"));