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();