import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class Main {
public static void main(String[] args) throws Exception {
Object[][] data = {
{ "A", new Integer(3), new Double(7.23), new Boolean(true) },
{ "J", new Integer(2), new Double(4.64), new Boolean(false) },
{ "S", new Integer(1), new Double(8.81), new Boolean(true) } };
String[] columns = { "Col", "Col", "Col", "Col" };
JTable table = new JTable(data, columns);
JScrollPane scroll = new JScrollPane(table);
JFrame f = new JFrame();
f.setContentPane(scroll);
f.pack();
int x = (int) table.getTableHeader().getSize().getWidth();
int y = (int) table.getTableHeader().getSize().getHeight() + (int) table.getSize().getHeight();
BufferedImage bi = new BufferedImage((int) x, (int) y,
BufferedImage.TYPE_INT_RGB);
Graphics g = bi.createGraphics();
table.getTableHeader().paint(g);
g.translate(0, table.getTableHeader().getHeight());
table.paint(g);
g.dispose();
JOptionPane.showMessageDialog(null, new JLabel(new ImageIcon(bi)));
ImageIO.write(bi, "png", new File("c:/Java_Dev/table.png"));
System.exit(0);
}
}