原貼:http://topic.youkuaiyun.com/t/20050603/19/4057825.html
// Try this:
// import com.sun.image.codec.jpeg.*;
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();
// or
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"));