Witam, mam prostokąta złożonego z kwadratów, po których chodzą zające i wilk. Metoda animation() uruchamia animację gonienia zająców przez wilka. Jest ona w klasie, gdzie jest obsługiwana metoda repaint(). Są także osobne klasy Wolf i Hare które extendują Thread. Chcę, żeby działała mi animacja, uruchamiając i wilki i zające poleceniem xxx.start(), a nie wpisywać tak jak mam tutaj xxx.move().

Jeśli to jest niezrozumiałe lekko, to inaczej - chcę włączenie animacji pisząc tylko wolf.start() i dla każdego zająca z klasy Hare Hare.start() i ma mi się dziać to co poniżej. Jak napisać metody run() w klasach Hare i Wolf tak żeby mi to działało? (jedyne co zmienić, to żeby nie uruchomiało mi się w takiej samej kolejności, tylko każda "żyła" swoim życiem i się uruchamiała co jakiś losowy czas (oryginalnie w kodzie mam pseudolosową liczbę zamiast 100)

Kody -


public void animation()
    {

        while(hares.isEmpty() == false)
        {
            try{
                Thread.sleep(100);
            }
            catch( InterruptedException e){}

                wolf.move();
                repaint();

            for(Hare i: hares){
                try{
                    Thread.sleep(100);
                }
                catch( InterruptedException e){}

                i.move();
                repaint();

            }
        }
    }