Zeichnen in neuem Thread

wassertropfen

Grünschnabel
Hallo Leute!

Meine Frage betrifft die GUI-Programmierung mit Swing.

Habe für meinen Mathelehrer ein Programm geschrieben, dass den
Monte-Karlo Algorithmus benutzt um Pi auszurechnen (siehe Wikipedia unteres Drittel: http://de.wikipedia.org/wiki/Kreiszahl).

Der Benutzer gibt die "Tropfenanzahl" ein und dann werden in einem neuen Thread beliebige Punkte bestimmt und mit Hilfe von getGraphics() in einer for-Schleife in ein Panel gezeichnet.
Dies funktioniert auch alles doch sobald man das Fester minimiert ist ja bekanntlich die Zeichnung weg und das nervt.
Verwende ich hingegen aus meinen Thread heraus einen repaint()-Aufruf und lasse die Punkte durch die paintComponent()-Methode zeichnen habe ich das Problem nicht, allerdings sieht man dann nicht, wie die einzelnen Punkte gezeichnet werden und das Programm hängt vorübergehend (vor allem bei vielen Punkten).

Meine Frage: Kann man aus einem neuem Thread heraus so zeichnen, dass die Grafik fest im Zwischenspeicher liegt und das Programm nicht hängt?

Danke schon mal im voraus!
 
Hallo,

typisches doublebuffering- bzw. Offscreen-Image-Problem.

Lass deinen Thread nicht direkt auf die Oberfläche zeichnen, sondern auf ein Image-Objekt.

Dieses Image zeichnest du dann fix und fertig in der paintComponent(g)-Methode auf
die Oberfläche !

Gruß JAdix
 
Zurück