Animacja - adrianj93/ProjektKCK GitHub Wiki

Animacja

Jedną z możliwości wprawienia eTraktora w ruch jest stworzenie wątku zmieniającego wartość zmiennej wykorzystywanej przez metodę rysującą paint(). Wartość zmiennych x i y będzie zmieniana w nieskończonej pętli, a metoda paint() będzie rysowała cały świat na nowo zaraz po metodzie repaint(), która cały świat będziesz czyściła. Metoda ta będzie mogła zostać zoptymalizowana, gdyż czyszczenie i rysowanie całego świata na nowo będzie mogło powodować migotanie obrazu. Im więcej elementów tym dłuższy będzie czas rysowania i bardziej widoczne migotanie. Rozwiązaniem problemu migotania będzie mogło być "buforowanie" przy pomocy klasy Image(). W taki przypadku wątek powodowałby zmianę zawartości graficznej obiektu klasy Image, a metoda paint() rysowałaby jedynie ten obiekt.

Wątki

W Javie możliwe są dwie metody tworzenia wątków - poprzez dziedziczenie z klasy Thread oraz poprzez implementację interfejsu Runnable.

1. Tworzenie wątków poprzez dziedziczenie z klasy Thread

Definicja klasy:

class MyThread extends Thread { . . .
public void run() { . . . } }

Tworzenie obiektu i uruchamianie wątku:

MyThread t = new MyThread(); t.start();

2. Tworzenie wątków poprzez implementację interfejsu Runnable

Definicja klasy: class MyThreadRun implements Runnable { . . . public void run() { . . . } }

Tworzenie i uruchamianie:

MyThreadRun r = new MyThreadRun(); Thread t = new Thread(r); t.start();