public void repaint() { if (frame == null) return; Dimension dim = component.getPreferredSize(); if (dim.getWidth() > component.getWidth() || dim.getHeight() > component.getHeight()) { frame.pack(); } else { frame.repaint(); } }
public void saveToDisk(String fileName) { Dimension dim = component.getPreferredSize(); java.awt.Rectangle rect = new java.awt.Rectangle(0, 0, dim.width, dim.height); BufferedImage image = new BufferedImage(rect.width, rect.height, BufferedImage.TYPE_INT_RGB); Graphics2D g = (Graphics2D) image.getGraphics(); g.setColor(java.awt.Color.WHITE); g.fill(rect); g.setColor(java.awt.Color.BLACK); component.paintComponent(g); String extension = fileName.substring(fileName.lastIndexOf('.') + 1); try { ImageIO.write(image, extension, new File(fileName)); } catch (IOException e) { System.err.println("Was unable to save the image to " + fileName); } g.dispose(); }