Zatrzymanie działałania programu na sekunde...

0

Oto metoda wieży Hanoi:

public static void doTowers(int topN, char src, char inter, char dest)
   {
    if(topN==1)
        frame.rysuj_wieze();
    else
       {
        doTowers(topN-1, src, dest, inter);   // z kol. źródłowej na pomocniczą

        frame.rysuj_wieze();
         doTowers(topN-1, inter, src, dest);   // wstawiamy dysk
         }
    }

Pytanie:
Jak skorzystać z javax.swing.Timer, aby zatrzymywać pracę tej metody rekurencyjnej, aby móc rysować aktualny stan wieży?
Ewentualnie jak mogę inaczej rozwiązać ten problem??
Dzięki!!

0

Wątki + komunikacja + przepływy sterowania = trutorial:
http://java.sun.com/docs/books/tutorial/essential/concurrency/
http://java.sun.com/developer/technicalArticles/Threads/swing/

W skrócie rysowanie i obliczenia robisz w dwóch oddzielnych wątkach. Pierwszy (np. obliczenia) po zakończeniu swojego kroku informuje drugi (np. rysowanie), ze trzeba coś narysować. Przekazuje mu wyniki swoich obliczeń w postaci jakiegoś obiektu reprezentującego stan (model) wież. Wątek rysujący rysuje, a w tym samym czasie wątek obliczeniowy liczy kolejny krok.

1 użytkowników online, w tym zalogowanych: 0, gości: 1