awtまたはswingのUIをグラフィックファイルに生成する方法


詳細
 
package
 demo;
import
 java.io.File;
import
 org.jfree.chart.JFreeChart;
import
 java.io.IOException;
import
 java.io.OutputStream;
import
 java.io.BufferedOutputStream;
import
 java.io.FileOutputStream;
import
 java.awt.image.BufferedImage;
import
 org.jfree.chart.encoders.ImageFormat;
import
 java.awt.Graphics2D;
import
 java.awt.
*
;
import
 java.awt.
*
;
import
 org.jfree.chart.encoders.ImageEncoder;
import
 org.jfree.chart.encoders.ImageEncoderFactory;
import
 javax.swing.JFrame;
import
 javax.imageio.ImageIO;
public
 
class
 ToImg 
{  public ToImg() {  }  /** *//**   * Saves a chart to a file in JPEG format.   *   * @param file  the file ( null  not permitted).   * @param quality  the JPEG quality setting.   * @param chart  the chart ( null  not permitted).   * @param width  the image width.   * @param height  the image height.   *   * @throws IOException if there are any I/O errors.   */  public static void saveChartAsJPEG(File file,                                     float quality,                                     JFreeChart chart,                                     int width,                                     int height) throws IOException {    if (file == null) {        throw new IllegalArgumentException("Null 'file' argument.");    }    if (chart == null) {        throw new IllegalArgumentException("Null 'chart' argument.");    }    OutputStream out = new BufferedOutputStream(new FileOutputStream(file));    BufferedImage images = chart.createBufferedImage(width, height, null);    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);    Graphics2D g2 = image.createGraphics();//    draw(g2, new Rectangle2D.Double(0, 0, width, height), null, info);    g2.dispose();    writeBufferedImage(image, ImageFormat.JPEG, out, quality);    out.close();  }  public static void writeBufferedImage(BufferedImage image, String format,      OutputStream outputStream, float quality)      throws IOException {    ImageEncoder imageEncoder        = ImageEncoderFactory.newInstance(format, quality);    imageEncoder.encode(image, outputStream);  }  public static void main(String[] args) {    Robot robot = null;    try {            JFrame f = new Frame1();       f.setSize(500,600);      f.setVisible(true);      f.setDefaultCloseOperation(2);      BufferedImage image = new BufferedImage(500, 600, BufferedImage.TYPE_INT_RGB);      f.getContentPane().paint(image.getGraphics());      FileOutputStream out = new FileOutputStream("d:\\b.jpg");      ImageIO.write(image, "jpeg" , out);      out.close();/** *//**         図をつかむ        Robot robot = new java.awt.Robot();      BufferedImage image = robot.createScreenCapture(new Rectangle(100, 100));      ImageEncoder imageEncoder          = ImageEncoderFactory.newInstance(ImageFormat.JPEG, 100);      FileOutputStream out = new FileOutputStream("d:\\a.jpg");      imageEncoder.encode(taget, out); }*/   }    catch (Exception ex) {      ex.printStackTrace();    }  }}