Strona 1 z 1

informowanie o postępie

Napisane: wtorek, 20 października 2009, 10:59
przez rhymie
Witam,
zastanawiam się jak poinformować o postępie wykonywania programu jednowątkowego.
W mojej formatce na dole dodałem jLabel i w kodzie dodałem zmianę tekstu tego jLabela.
Problem mam z tym, że nowy tekst nie pojawia się w tym momencie co bym chciał.
Kombinowałem z jProgressBar'em , ale on też zachowuje się tak samo.

pozdrawiam,
rhymie

Re: informowanie o postępie

Napisane: wtorek, 20 października 2009, 16:08
przez Morfidon
Witam,

Prawdopodobnie problem polega na tym, że nie używa Pan tego co przedstawiłem w ostatniej lekcji Video Kursu - Java - Aspekty Zaawansowane.

Jak chce Pan synchronizować tylko jeden wątek? Wydaje mi się, że potrzebne są dwa.

Pozdrawiam,

Arkadiusz

Re: informowanie o postępie

Napisane: wtorek, 20 października 2009, 22:13
przez rhymie
ok, to niech będą dwa wątki.
jeden wątek to wątek informacyjny, a drugi to nasz właściwy program.
Zakładając że schematycznie program powinien działać tak:
watek2.start
watek1.start
---
watek1:jakis kod
watek1.wait
watek2: informacja o postępie
watek2.wait
itd

Jak ustawić żeby wątek informacyjny zaczął się (watek.start) jako pierwszy ? bo rozumie nie ustawia się tego poprzez priorytety wątków (wg. lekcji 9), a kolejność ustawienia watek.start też nie ma znaczenia.

A może możliwe jest ustawienie watek.start gdzieś indziej w programie a nie w metodzie main ? i czy ewentualnie ma to sens ?

pozdrawiam,
rhymie

Re: informowanie o postępie

Napisane: wtorek, 20 października 2009, 22:49
przez Morfidon
Najprościej to użyj metody join(), albo zablokuj wykonywanie wątku głównego dopóki nie zareaguje wątek informacyjny, oczywiście jeżeli korzystasz z pakietu Swing to warto użyć dodatkowo EventQueue.