Swing Fenster in Graphics rendern

Servus,

ich möchte für eine Vorschau-Funktion ein Fenster im Hintergrund rendern. Z.Z. soll das ganze noch in eine Datei gespeichert werden. Das funktioniert sehr gut - solange das Fenster sichtbar ist. Das Aufblitzen des Fensters in dieser Lösung möchte ich aber auf jeden Fall vermeiden. Wie?

Code (Q’n’D):

package mis;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JDialog;

public class Main {

 /\*\*
 \* @param args the command line arguments
 \*/
 public static void main(String[] args) throws IOException {
 JDialog mainFrame = new JDialog();
 JButton jb = new JButton("a");
 mainFrame.add(jb);
 mainFrame.setSize(128, 128);
 mainFrame.setUndecorated(true);
 mainFrame.setVisible(true);
 BufferedImage i = new BufferedImage(256,256,BufferedImage.TYPE\_INT\_RGB);
 mainFrame.getRootPane().paintComponents(i.getGraphics());
 ImageIO.write(i, "jpg", new File("./1.jpg"));
 mainFrame.dispose();
 System.exit(0);
 }

}

Vielen Dank im Voraus.
michi

NAbend, …

also iMo ist dein Ansatz, ja dass du beim erzeugen die Komponente abfängst und dann in einem Image speicherst.

Da es erzeugt werden muss damit du auch was zeichnen kannst … kommst du mit einfachen mitteln, meines Erachtens, nicht daran vorbei ^^

MfG DK