Składnik klasy jako oddzielny wątek

Odpowiedz Nowy wątek
2014-12-29 12:43
0

Witam.
Mam klasę która jako składnik posiada obiekt klasy X dziedziczący po JFrame. Obiekt ten odpowiada za wyświetlanie animowanego gifu jako tła. Moim celem jest rozdzielenie tła od reszty programu, gdyż wywołuję metodę sleep, a to powoduje że tło również zostaje uśpione. Próbowałem w klasie X implementować interfejs Runnable i w funkcji run wywoływać metodę repaint(), ale nic to nie daje.

Pozostało 580 znaków

2014-12-29 13:25
0

http://docs.oracle.com/javase[...]swing/concurrency/simple.html

Edit: ok komentarz Koziołka sprowadził mnie na ziemię :P

Nie używaj sleepa, tylko SwingWorkera, taki był pomysł na zarządzanie tym. robisz to co potrzebujesz w DoInBackground na done sobie updateujesz to co Ci potrzebne a tło jest odświeżane niezależnie. Najlepiej w oddzielnej klasie. I ze swingworkera mozesz wyciągnąć jakąś wartość po obliczeniach :)

pzdr

Edit2: ale lepiej słuchaj Koziołka z postu niżej, punktów nie bez kozery ma tyle ;)

edytowany 2x, ostatnio: wojciechmaciejewski, 2014-12-29 15:12
i ci dalej? To nie rozwiazuje problemu, a może zamieszać słówkiem background - Koziołek 2014-12-29 15:01
Faktycznie, to słówko jest trochę mylące w tym przypadku - revan 2014-12-29 16:59

Pozostało 580 znaków

2014-12-29 15:06
2
  1. nie wywołuj metody sleep. Są do tego znacznie lepsze rozwiązania np. Future
  2. SwingWorker jako menadżer wątków jest OK, ale należy poczytać jak on działa.
  3. Dobrym rozwiązaniem może być utworzenie całkowinie nowego i niezaleznego komponentu "ZAnimomawnymTłem", który będzie posiadać wewnętrzny wątek (zarządzany przez SwingWorkera) do obsługi animacji. Aplikacja będzie widziała ten komponent jak każdy inny i będzie odseparowana od jego zachowania.

Pozostało 580 znaków

2014-12-29 16:58
0

O takie coś mi chodziło. Dziękuję za pomoc :).

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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