Bonsoir à tous,
Je fait appel à vous pour un petit problème:
J'ai une classe héritant de JXPanel affichant une carte ainsi qu'un quadrillage.
J'utilise une JXImagePanel pour l'image de fond (un plan .jpg). Ensuite j'affecte un GridLayout sur mon imagePanel. Je remplie l'imagePanel de petits jXPanels transparents avec un border noir de façon a créer mon quadrillage.
Chaque petits jPanels contienne un autre jXPanel translucides de couleurs afin d'afficher un lieu sur le quadrillage. Ils sont soit en alpha(0f) pour être invisibles, soit en alpha(0.5f) rouge pour les cases intéressantes.
J'ai voulu créer une image à partir de ce quadrillage. J'ai utilisé ce code:
Ce code marche bien mais les images n'affichent pas les petits carrés de couleur. Peut-être parce qu'ils ont un alpha. Par contre si je rend visible ma JWindow les images générées contiennent bien les petits carrés.
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 public java.awt.Image exportImage() throws ImageFormatException { JWindow f = new JWindow(); f.getContentPane().add(this); f.pack(); f.doLayout(); f.validate(); BufferedImage im = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = im.createGraphics(); paint(g2d); // try { // OutputStream out = new FileOutputStream(System.getProperty("user.home") + java.io.File.separator + evt.getId()+".png"); // transfertImage(im, out); // } catch (FileNotFoundException ex) { // Logger.getLogger(MapEvenement.class.getName()).log(Level.SEVERE, null, ex); // } g2d.dispose(); f.dispose(); return im; }
Tout ceci est un peu compliqué à expliquer mais si vous voulez je peux vous montrer le code en entier.
Merci
Partager