Ciao a tutti,

ho la necessità di salvare il contenuto di un JPanel in un'immagine jpeg.

Ho fatto diverse prove ma l'unica cosa che mi riesce è fare una cattura dell'immagine mediante il Robot... con un risultato non molto buono.

Con un codice di questo tipo mi viene fuori un'immagine con solo lo sfondo:

codice:
 //PROVA 2
                
                String fileName2;
                fileName2="prova2";
                
                BufferedImage image = new java.awt.image.BufferedImage( jPanel1.getWidth(), jPanel1.getHeight(), BufferedImage.TYPE_INT_RGB);
                    
                Graphics2D g = image.createGraphics();
                g.setRenderingHint( RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON );
               g.setRenderingHint( RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
//                g.setRenderingHint( RenderingHints.KEY_COLOR_RENDERING , RenderingHints.VALUE_COLOR_RENDER_QUALITY );     // provato, ma non cambia nulla
//                g.setRenderingHint( RenderingHints.KEY_ALPHA_INTERPOLATION , RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);  // provato, ma non cambia nulla
 
                jPanel1.paintAll(g);
                g.dispose();
                try {
                javax.imageio.ImageIO.write(image, "jpeg", new java.io.File("./" + fileName2 + ".jpg"));
                } catch (IOException ex) {
                  ex.printStackTrace(); }
                image.flush();
Secondo voi può essere "colpa" del contenuto del jpanel? (mostra un file dxf )

Grazie a tutti in ogni caso