When your ducks move, they don't automatically trigger a re-paint. You must do this manually. Also, I don't think it's a good idea to give each duck their own thread. Rather, have one thread update...