Comme un imprim ecran en fait....
sans que le graphe est forcément des paintComponent ou truc comme ça
Comme un imprim ecran en fait....
sans que le graphe est forcément des paintComponent ou truc comme ça
A mon avis, la méthode clone() doit te fournir ça si elle est bien implémentée (jamais essayé de cloner des composants graphiques).
Tu gardes ton JPanel cloné à l'abris des modifications et il devrait correspondre à la "photo" que tu désirais.
Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
Mes articles et tutoriaux & Mon blog informatique
Euh, la méthode clone n'a pas du tout cette fonction. Elle sert bien à cloner, mais c'est juste pour faire une copie de l'objet. Que ce soit un composant graphique ou non...
Pour enregistrer une image de ton composant, tu peux regarder ça.
Désolé pour l'auteur mais je ne sais plus ou j'avais trouvé cette classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public class ScreenImage { public static BufferedImage createImage(JComponent component) throws IOException { Dimension d = component.getSize(); Rectangle region = new Rectangle(0, 0, d.width, d.height); return ScreenImage.createImage(component, region); } public static BufferedImage createImage(JComponent component, Rectangle region) throws IOException { boolean opaqueValue = component.isOpaque(); component.setOpaque(true); BufferedImage image = new BufferedImage(region.width,region.height,BufferedImage.TYPE_INT_RGB); Graphics2D g2d = image.createGraphics(); g2d.setClip(region); Graphics g = component.getGraphics(); component.paint(g2d); g2d.dispose(); component.paint(g); component.setOpaque(opaqueValue); return image; } public static File createPNGfromBufferedImage(BufferedImage image, String path) { File file = new File(path); try { ImageIO.write(image, "png", file); return file; } catch (IOException e) { return null; } } }
Partager