Извикайте t.start() за да стартирате нова Thread , извиквайки Thread#run не прави нищо повече, след което извиква run метод на Thread в рамките на същия контекст на нишката...
Като каза това, Swing не е безопасен за нишки, Swing изисква всички актуализации на потребителския интерфейс да се правят от контекста на нишката за изпращане на събития. Вместо да използвате Thread , трябва да помислите за използването на SwingWorker , което ви позволява да изпълнявате продължителни задачи във фонова нишка, но осигурява лесен за използване publish /process методи и извиквания done когато завърши, които се изпълняват в контекста на EDT за вас.
Вижте Worker Threads и SwingWorker за повече подробности