Archive for December, 2011

Java – SwingWorker Ngambek…

Beberapa hari yang lalu ada sedikit masalah dengan penggunaan SwingWorker pada aplikasi Swing. Kendalanya mulai muncul setelah melakukan update menggunakan JDK 6 Update 23. SwingWorker pada JDK tersebut tidak berjalan sesuai yang diharapkan.

Ssaat aplikasi menjalankan lebih dari 1 SwingWorker maka proses Worker yang kedua akan menunggu sampai proses Worker yang pertama selesai. Padahal pada JDK 6 Update 17, SwingWorker dapat bekerja secara bersama-sama walaupun Worker yang dijalankan lebih dari 1.

Setelah capek-capek mencari jawaban di mbah Google, diketahui kalo pada JDK 6 dengan update sesudah Update 7 memiliki bugs seperti pada penjelasan aplikasi diatas. Dan untuk mengatasinya masalah tersebut dengan mendowngrade JDK 6 Update 23 menjadi JDK 6 Update 17 atau dengan mendownload distribusi SwingWorker yang terpisah dengan JDK. Read the rest of this entry »

, , , ,

Leave a comment

Java – Thread Pada Swing

Pada saat membuat aplikasi dengan Swing, terkadang kita menemukan permasalahan saat memberi aksi pada suatu button dan ketika button tersebut di klik / diberi aksi maka aplikasi swing terlihat hang atau tidak merespon atas aksi yang kita berikan. Tetapi sebenarnya, aksi yang kita berikan sedang diproses oleh program hanya saja proses eksekusinya membutuhkan waktu yang cukup lama sehingga aplikasi Swing terlihat hang atau tidak merespon.

Untuk membuat aplikasi swing yang kita buat tidak terlihat hang, maka kita letakkan proses – proses yang membutuhkan waktu proses yang cukup lama pada Worker Thread. Nah, apa itu Worker Thread? Apakah ada thread lainnya? Agar dapat mudah dipahami, berikut beberapa thread yang berhubungan dengan pembuatan aplikasi Swing :

  1. Initial Thread
    Thread ini akan menjalakan method main yang terdapat pada aplikasi Swing. Setelah proses pada thread ini selesai, maka akan dilanjutkan oleh Event Dispatching Thread
  2. Event Dispatching Thread / EDT
    EDT menangani aksi-aksi pada aplikasi Swing, seperti aksi button, menu, ataupun aksi lainnya.
  3. Worker Thread
    Worker Thread digunakan untuk menangani proses – proses yang membutuhkan waktu yang cukup lama. Dengan menempatkan proses pada Worker Thread maka aplikasi Swing yang kita buat akan terlihat lebih responsif dan tidak terlihat hang.

Dari thread-thread diatas, dapat disimpulkan jika kita membuat aplikasi swing sebaiknya proses-proses yang membutuhkan waktu yang cukup lama lebih baik diletakkan di Worker Thread dan proses – proses yang membutuhkan waktu singkat dapat diletakkan pada Event Dispatching Thread.

, , , ,

Leave a comment