Duda con Threads, Graphics2D y Animaciones

x7iBiT
01 de Mayo del 2010
Buenas, estoy haciendo un programa que dibuje polinomios por medio de Graphics2D. Hasta aquí ningún problema, pero me han pedido que el programa tenga una opción para dibujar el polinomio de forma animada. El Polinomio lo calculo previamente en un GeneralPath, y luego si la opción de la animación está activada, la hago desde una "inner class" de tipo Thread. En dicha clase voy recorriendo el GeneralPath con un PathIterator, y voy uniendo todos sus puntos con Line2D. Para hacer un efecto de animación lo que hago es que cada 5 iteraciones duermo el proceso un número X de milisegundos ( sleep(x) ). Supuestamente debería de funcionar pero lo que pasa es que todas las Line2D se dibujan de golpe al final. Es como si el Graphics2D fuera como un buffer en el que los cambios no se aplican siempre inmediatamente. La dudas mías son: ¿Hay algun método para un Graphics2D que actualice el dibujo con los últimos cambios? Vamos que sería algo así como un flush con un stream de C por ejemplo. La verdad es que me he vuelto loco intentando buscar algo parecido y no he encontrado nada. ¿Alguna otra forma de hacer una animación sin tener que redibujar todo cada vez (o sea sin tener que hace un repaint() cada vez)?