Witam.
Moja aplikacja składa się 2 klas: JFrame który jest GUI aplikacji oraz klasy udostępniającej jakieś usługi które trwają >5min. Chciałbym zrealizować taką funkcjonalność, że po naciśnięciu przycisku w JFrame wywołuje się metoda z tej drugiej klasy i przykładowo na jakimś labelu odlicza się czas i kończy wraz z zakończeniem tej metody. Mam to wszystko już napisane, problem był taki że po wywołaniu tej metody zawieszało się całe GUI i nie było widać odliczającego się czasu. Rozwiązaniem jest zapewne puszczenie jej w innym wątku, ale jak to będzie z komunikacją, dostępem to tego labela, itp, jak to zrobić porządnie?
- Rejestracja:około 13 lat
- Ostatnio:około 12 lat
- Postów:21
0
- Rejestracja:około 12 lat
- Ostatnio:ponad 11 lat
- Postów:135
1
Poczytaj o SwingWorker. Został stworzony właśnie w tym celu. Puszczasz coś w runInBackground() i tam wywołujesz swoje operacje i aktualizację jakiegoś paska postępu/odliczania. Później w done() wywołujesz to, co miało się zrobić po zakończeniu całego procesu (np. wyświetlenie komunikatu "lubię placki").
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.