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