Dovremo poi scrivere il metodo public void run(); che esegua il movimento.
Questo metodo dovrà fare un ciclo che modifichi le coordinate della palla, ad una velocità costante (diciamo 20 volte al secondo) e calcoli il rimbalzo sui bordi.
Occorre notare che il metodo public void run();non viene invocato solo dal thread, ma anche dal processo principale.
Inoltre occorre prevedere di interrompere il ciclo quando premiamo fine nella finestra, altrimenti il programma non termina.
Per questo motivo quindi, il nostro ciclo dovrà verificare che il thread corrente corrisponda ad animazione: while (Thread.currentThread() == animazione)
Per interrompere il ciclo quindi, nel metodo public void stop(); non ci servirà altro che mettere a null l'attributo animazione e il ciclo terminerà.
Per introdurre una pausa che regoli la velocità del ciclo utilizzeremo il metodo statico Thread.sleep(long millis);
Questo metodo può inviare un'eccezione se la pausa viene interrotta anzitemtpo. Inseriremo quindi l'invocazione in un blocco try/catch dove la catch non farà alcuna azione.