Hola:
Veo que tienes toda tu logica, pintado, el hilo, etc. todo en un solo archivo.
Deberia organizar mejor tu codigo, hacer un diagrama de clases de como va estar estructurado tu programa.
En el caso de las animaciones, puede crearte una clase, por decir "pintado" que solo se encargue del pintado, y que extienda de JPanel, y simplemente en su constructor de la clase pones:
Código PHP:
this.setdoublebuffer(true) //si no me equivo es asi
sobreescribis el metodo paint, y ya no deberia parpadear tu programa
Obviamente en el JFrame principal te creas un contenedor, donde lo adicionas tu clase que extiende de JPanel y listo
Suerte