RE:Imprimir JFrame en Java
BufferedImage im = new BufferedImage(ancho,largo, BufferedImage.TYPE_INT_BGR);
Graphics g = im.getGraphics();
frame.paintAll(g);
ImageIO.write(im, extension de la imagen, new File(donde la quieras guardar));
creo qe sto te valdra. suerte