I'm looking to call repaint() in my Java2D simulator at regular intervals.
What would be the best way to do this? Should I start another thread and have a loop that keeps track of currentTimeMillis()? Or is there a better way?
Use timer function in java (javax.swing.Timer)
and this may useful for you efiicient way to repaint