Zavolejte t.start() pro zahájení nového Thread voláním Thread#run nedělá nic víc než volá run metoda Thread ve stejném kontextu vlákna...
Nicméně, Swing není bezpečný pro vlákna, Swing vyžaduje, aby všechny aktualizace uživatelského rozhraní byly provedeny v kontextu vlákna Dispatching Event. Místo použití Thread , měli byste zvážit použití SwingWorker , která vám umožňuje spouštět dlouhotrvající úlohy ve vláknu na pozadí, ale která poskytuje snadné použití publish /process metody a volání done po jeho dokončení, které jsou pro vás provedeny v kontextu EDT.
Viz Worker Threads a SwingWorker pro více podrobností