import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.table.*;
public class TestImage {
public static void main(String args[]) {
Object cols[] = {"this", "is", "a test"};
Object data[][] = {{"a","b","c"},{"d","e","f"},{"g","h","i"}};
JTable table = new JTable(data,cols);
JScrollPane jsp = new JScrollPane(table);
saveComponentAsImage(jsp);
}
public static void saveComponentAsImage(JComponent c) {
int w = c.getPreferredSize().width;
int h = c.getPreferredSize().height;
BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
if(GraphicsEnvironment.isHeadless()) {
System.out.println("headless");
} else {
System.out.println("NOT headless");
}
c.addNotify();
c.setSize(w,h);
c.setVisible(true);
c.validate();
c.paint(g);
try {
ImageIO.write(image, "png", new File("testImage.png"));
} catch (IOException ioe) {
System.out.println(ioe.getMessage());
}
g.dispose();
}
java -Djava.awt.headless=true TestImage
|