/ / Wielowątkowość przycisku Java - java, wielowątkowość, swing

Wielowątkowość przycisku Java - java, wielowątkowość, huśtawka

Mam następujący problem. Zaprojektowałem GUI w zaimplementowanym narzędziu Netbeans GUI i mam kilka przycisków w swoim programie. Jeśli naciśniesz jeden z przycisków, zacznie działać metoda, która zajmie około 10 sekund, ale jest też przycisk do anulowania uruchamiania tego ale podczas działania metody Button 1 nie mogę kliknąć żadnego innego przycisku w moim programie, to tak jakby zostać zamrożonym i muszę poczekać, aż metoda zostanie zakończona. Myślę, że to ma coś wspólnego z wielowątkowością, czy możecie mi coś podpowiedzieć?

Dzięki !

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz użyć SwingWorker.

public class MyBackgroundWorker extends SwingWorker<Integer, String> {

@Override
protected Integer doInBackground() throws Exception {
callYourLongTimeTakingMethod();
return 0;
}
}

Teraz na przycisku nasłuchiwania zdarzeń przycisku Start stwórz dla tego obiekt SwingWorker klasy i wykonaj to.

objMyBGWorker = new MyBackgroundWorker();
objMyBGWorker.execute();

A na przycisku anulowania nawet słuchacz, do którego możesz zadzwonić, objMyBGWorker.cancel(true);