Wywołaj t.start()
aby rozpocząć nowy Thread
, wywołując Thread#run
nie robi nic więcej niż wywołuje run
metoda Thread
w tym samym kontekście wątku...
Powiedziawszy to, Swing nie jest bezpieczny dla wątków, Swing wymaga, aby wszystkie aktualizacje interfejsu użytkownika były dokonywane w kontekście wątku wysyłania zdarzeń. Zamiast używać Thread
, powinieneś rozważyć użycie SwingWorker
, który pozwala na wykonywanie długotrwałych zadań w wątku w tle, ale który zapewnia łatwy w użyciu publish
/process
metody i wywołania done
po zakończeniu, które są wykonywane w kontekście EDT dla Ciebie.
Zobacz Wątki robocze i SwingWorker po więcej szczegółów