Panggil t.start() untuk memulai Thread . baru , memanggil Thread#run tidak melakukan apa-apa selain memanggil run metode Thread dalam konteks utas yang sama...
Karena itu, Swing tidak aman untuk thread, Swing mengharuskan semua pembaruan UI dibuat dari dalam konteks Thread Pengiriman Acara. Alih-alih menggunakan Thread , Anda harus mempertimbangkan untuk menggunakan SwingWorker , yang memungkinkan Anda menjalankan tugas yang berjalan lama di utas latar belakang, tetapi menyediakan publish yang mudah digunakan /process metode dan panggilan done ketika selesai, yang dieksekusi dalam konteks EDT untuk Anda.
Lihat Utas Pekerja dan SwingWorker untuk lebih jelasnya