Bild von JFrame oder JLabel oder JPanel als *jpg abspeichern

Tithilion

Mitglied
Hab nun schon einige sachen gegoogelt, aber ich bekomm immer wieder nur ein schwazes bild :(

vllt wisst ihr rat
mein code:

Code:
static JPanel hintergrund = new JPanel();
.
.
.
 public static void setHinterB() {
BufferedImage img1 = new BufferedImage(322,416, BufferedImage.TYPE_INT_RGB);
        hintergrund.paint(img1.createGraphics());
        
       }catch(IOException ioe) {
          System.out.println(ioe.getMessage());
        }}



egal ob ich paint() oder paintComponets() mache gibt kein unterschied, auch keins wenn ich anstatt des panels 'n label speichern wollte.
 
Der Code sieht eigentlich gut aus, wie speicherst du denn dein Bild?
Probiere auch mal statt der createGraphics-Methode die getGraphics-Methode von deinem BufferedImage.
Bei einem eigenen Test habe ich festgestellt, dass nur der Inhalt des Fensters gezeichnet wurde, der Rahmen blieb schwarz. Wenn ich aber auch als Fensterrahmen das MetalLookAndFeel verwende, dann wird alles gezeichnet.
Hast du es schon einmal bei einem JFrame ausprobiert?
 
getGraphics probier ich direkt mal aus,das bild wird per JLabel.setIcon(new IconPainter(...)) und einer selbst geschriebenen klasse "IconPainter" auf das JLabel gepackt

gespeichert wirds per
Code:
ImageIO.write(img1, "jpg", new File("Bilder/schrank1.JPG"));
 
Zurück