2017-05-15 2 views

Antwort

0

Sie müssen es zu einem Offline-Puffer malen, dann speichern Sie es auf der Festplatte.

BufferedImage offImage = (BufferedImage)createImage(getWidth(), getHeight()); 
Graphics2D g2  = offImage.createGraphics(); 
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 
g2.setRenderingHint(RenderingHints.KEY_RENDERING , RenderingHints.VALUE_RENDER_QUALITY); 
paintComponent(g2); 
paintChildren(g2); 
ImageIO.write(offImage, "png", "snapshot.png"); 
+0

Rufen Sie paintComponent() und paintChildren() nicht separat auf, rufen Sie paint() nur für die Komponente auf, die als Zeichenfläche verwendet wird. Einige Leute haben auch vorgeschlagen, dass es effizienter ist, 'print (....)' zu verwenden – camickr

Verwandte Themen