Java - tworzenie wielu watków w programie


(Lord218) #1

Witam.

Mam napisany taki program: http://4programmers.net/Pastebin/2681

Muszę go przerobic tak, aby:

Dodać możliwość wyświetlania wielu kulek jednocześnie (kod odpowiedzialny za animacje trzeba

umieścić w oddzielnym wątku)

Dodać wątek obsługi zdarzeń związanych z interfejsem użytkownika

Czy ktoś może wie jak to zrobić?

Proszę o pomoc i pozdrawiam.


(kostek135) #2

Nigdy nie słyszałem, żeby móc stworzyć drugi, osobny wątek obsługi zdarzeń. Po to jest jeden, żeby w gui nie dochodziło do deadlocków albo concurrent modification. Po prostu obliczasz, co musisz obliczyć w osobnym wątku, a następnie dodajesz do kolejki komunikatów już istniejącego wątku prośbę o odrysowanie. Poczytaj o EventQueue. Możesz też zainteresować się klasą SwingWorker, moim zdaniem udostępnia API o większych możliwościach,nie mniej przy odrobinie pracy to samo można uzyskać z EventQueue.


(Frankfurterium) #3

SwingWorker będzie najlepszy. W doInBackground wszystko liczysz, publishem uaktualniasz wizualia. + swojego SwingWorkera (lub SwingWorkery) najlepiej odpalaj przez ExecutorService.