Anrop t.start()
för att starta en ny Thread
, anropar Thread#run
gör inget mer än anropar run
metod för Thread
inom samma trådsammanhang...
Med det sagt, Swing är inte trådsäkert, Swing kräver att alla uppdateringar av användargränssnittet görs inom ramen för Event Dispatching Thread. Istället för att använda en Thread
, bör du överväga att använda en SwingWorker
, som låter dig utföra långvariga uppgifter i en bakgrundstråd, men som ger lättanvänd publish
/process
metoder och anrop done
när den är klar, vilka exekveras inom ramen för EDT åt dig.
Se Worker Threads and SwingWorker för mer information