Mam pracownika swing, który oblicza w tle, podczas aktualizowania progressBar w JFrame.Jak czekać na zakończenie SwingWorker?
Jak mogę sprawić, aby główny wątek czekał na zakończenie funkcji doInBackground()?
Wiem, że mogę umieścić rzeczy w zrobione() metoda, ale zastanawiałem się, czy istnieje sposób, aby rzeczywiście czekać program (ten wątek, aby być poprawnym).
Coś podobnego do tego, co zrobiłby modalny JDialog.
Więc ...
SwingWorker a = new SwingWorker();
a.execute
doOtherStuff();
doOtherStuff jest prowadzony tylko po doInBackground jest kompletna, ale bez narażania wspomnianą metodę w sposób zrobić() z SwingWorker.
SwingWorker reprezentuje „asynchroniczny” operację. Przy takim paradygmacie "następna" rzecz powinna być obsługiwana w oddzwanianiu - w przeciwnym razie użycie jej jako asynchronicznego źródła zdarzeń niewiele kosztuje. JDialogi to straszne hacki ... nie jest to coś, co polecałbym próbować naśladować. –