2 manières pour transformer vos JComponent en image
Page 1 sur 1
2 manières pour transformer vos JComponent en image
Salut à tous.
Il ne vous est jamais venu l'envie de générer automatiquement des images à partir des composants graphiques Swing de vos applications Java afin d'illustrer vos notices utilisateur ?
La manière basique consiste à appuyer sur la touche PrintScreen (Imp écr Syst en français) pour faire une impression de votre écran, puis passer sous le logiciel MS Paint pour récupérer l'image et en sélectionner la partie qui vous intéresse. Une petite astuce au passage pour ceux qui ne la connaitraient pas : Il est possible de ne prendre en impression d'écran que la fenêtre active de votre Windows (enfin, la partie visible à l'écran...) en appuyant sur Alt Gr et Imp écr en même temps.
Voyons maintenant ce qu'il est possible de faire en Java. J'ai trouvé 2 moyens, ce qui m'a donné 2 entités de transformation dont je vous donne ici le code source.
Première manière : utiliser la fonctionnalité createScreenCapture(Rectangle) de la classe java.awt.Robot
Deuxième manière : utiliser la fonctionnalité print(Graphics) de la classe java.awt.Component
Il ne vous est jamais venu l'envie de générer automatiquement des images à partir des composants graphiques Swing de vos applications Java afin d'illustrer vos notices utilisateur ?
La manière basique consiste à appuyer sur la touche PrintScreen (Imp écr Syst en français) pour faire une impression de votre écran, puis passer sous le logiciel MS Paint pour récupérer l'image et en sélectionner la partie qui vous intéresse. Une petite astuce au passage pour ceux qui ne la connaitraient pas : Il est possible de ne prendre en impression d'écran que la fenêtre active de votre Windows (enfin, la partie visible à l'écran...) en appuyant sur Alt Gr et Imp écr en même temps.
Voyons maintenant ce qu'il est possible de faire en Java. J'ai trouvé 2 moyens, ce qui m'a donné 2 entités de transformation dont je vous donne ici le code source.
Première manière : utiliser la fonctionnalité createScreenCapture(Rectangle) de la classe java.awt.Robot
- Code:
package gus05.entity.gus.image.printcomponent;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;
import java.awt.AWTException;
import java.awt.Component;
import java.awt.Rectangle;
import java.awt.Robot;
public class PrintComponent implements Entity, Transform {
public String getName() {return "gus.image.printcomponent";}
public String getCreationDate() {return "2006.07.07";}
private Robot robot;
public PrintComponent() throws AWTException
{robot = new Robot();}
public Object transform(Object obj) throws Exception
{
Component component = (Component)obj;
Rectangle frame = component.getBounds();
frame.setLocation(component.getLocationOnScreen());
return robot.createScreenCapture(frame);
}
}
Deuxième manière : utiliser la fonctionnalité print(Graphics) de la classe java.awt.Component
- Code:
package gus05.entity.gus.image.printcomponent2;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;
import java.awt.Component;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.image.BufferedImage;
public class PrintComponent2 implements Entity, Transform {
public String getName() {return "gus.image.printcomponent2";}
public String getCreationDate() {return "2011.06.26";}
public Object transform(Object obj) throws Exception
{
Component component = (Component)obj;
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gd.getDefaultConfiguration();
BufferedImage image = gc.createCompatibleImage(component.getWidth(),component.getHeight());
Graphics2D g = image.createGraphics();
component.print(g);
g.dispose();
return image;
}
}
Sujets similaires
» Transformer un objet Icon en Image
» Transformer un tableau Icon[] en Image
» Différentes manières de contribuer
» Lire une image BMP
» Inversion des couleurs d'une image
» Transformer un tableau Icon[] en Image
» Différentes manières de contribuer
» Lire une image BMP
» Inversion des couleurs d'une image
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Mar 16 Sep - 12:01 par Gus
» Présentation du jeu Vindinium
Jeu 20 Fév - 15:32 par Gus
» Rechercher la cible la plus proche avec le "Breadth First Search"
Jeu 20 Fév - 13:06 par Gus
» Impression d'écran avec sélection de zone
Jeu 20 Fév - 12:12 par Gus
» Envoyer un mail par un compte Gmail
Jeu 25 Avr - 14:04 par Gus
» Streaming : comment télécharger les vidéos
Lun 4 Fév - 19:59 par Gus
» Synology : installer ipkg
Mar 22 Jan - 21:22 par Gus
» Trouver le type de lecteur avec JNA
Mer 9 Jan - 23:11 par Gus
» Adresse ip publique et adresse ip privée, Internet box et UPnP
Mer 9 Jan - 21:02 par Gus
» Accéder au numéro de série du lecteur par un script vb
Mer 9 Jan - 19:31 par Gus