That's a pleasure
. Try setting the Timer to fire more often than every 40ms and less often than every 20ms; I think you will get good movement like that. Remember that moving 10px every 20ms will take the ball right across an average‑sized display in about 1″. Consider doing that animation in JavaFX, where pixel numbers are denominated in
doubles, so you can have fractional pixels. Or use
doubles yourself, but you may have to cast all the
doubles to
ints when you paint the display.