Komponente in ein Bild rendern - auch ohne, dass die Komponente vorher sichtbar ist?

DarthShader

Erfahrenes Mitglied
Hallo,

ich würde gerne den Inhalt einer Komponente (z.B. ein JPanel mit mehreren components als Inhalt des Containers) in ein Bild rendern und dieses Abspeichern.

Das ist ja nicht so schwer - ich erstelle ein Image Objekt, hole mit davon das Graphics Objekt und zeichne die Komponente dann per paintComponents( graphics) in das Image Objekt.

Nun das Problem: ich würde das auch gerne tun können, ohne dass die Komponente angezeigt wird, ja vielleicht sogar ohne, dass sie Teil eines anderen Containers, z.B. eines Fensters ist. Natürlich ist es so, dass nichts gezeichnet wird, wenn die Komponente unsichtbar ist. Kann man das vielleicht irgendwie übergehen?

Ich hätte auch die Möglichkeit, die zu zeichnende Komponente doch in mein Fenster zu legen und anzuzeigen, dann aber nicht in voller Größe, sondern kleiner, sodass nur ein Teil davon sichtbar ist. Hier ist aber wieder das Problem: nur der sichtbare Bereich wird dann in das Bild gerendert, auch das ist natürlich verständlich, es sollen ja Zeichenoperationen gespart werden. Aber wie könnte man es forcieren, dass alles von der Komponente gezeichnet wird?


Ich würde mich über ein paar Tipps und Gedanken von Euch zu dem Thema sehr freuen


Vielen Dank für Eure Hilfe!
 
Zuletzt bearbeitet:
Zurück