Saya hanya bisa menjawab apa yang berhasil bagi saya. Komentator lain telah menunjukkan bahwa GUI Jawa pada umumnya jatuh ke dalam 'lembah aneh' dengan tampilan dan nuansa yang tidak terlalu asli, dan saya tidak membantah ini.
Manfaatkan API Tindakan dengan baik. Ini memungkinkan Anda merangkum berbagai tindakan yang akan dilakukan oleh pengguna dan memungkinkan Anda untuk menghubungkannya dengan pintasan, tombol akselerator, tombol, dan objek input lainnya dengan lebih mudah.
Gunakan manajer tata letak yang sesuai. GridBagLayout sangat kuat, tapi saya akan mengatakan bahwa itu tidak dapat dipertahankan tanpa jumlah komentar yang berlebihan. Ketika saya menjalankan alat analisis kode statis seperti Sonar pada aplikasi GUI yang lebih lama saya pertahankan, selalu menunjukkan jumlah angka ajaib yang sangat besar untuk membuat tata letak GridBags tepat. Saya sudah banyak sukses dengan GroupLayout, yang menghindari keharusan menentukan penyelarasan piksel-sempurna.
Jika Anda pikir Anda memerlukan JDialog ... Anda mungkin tidak. Kotak dialog mengerikan, dalam hal pengalaman pengguna - aplikasi ini memutuskan untuk menggunakannya untuk setiap menu dan formulir, dan untuk menegakkan aturan yang selalu ada di atas dengan cara yang aneh. Ini berubah menjadi mimpi buruk pemeliharaan ketika kami benar-benar perlu mengingatkan sesuatu pada menu. Cue frustrasi mengklik dialog yang tidak fokus - dan karenanya tidak bisa dihilangkan -.
Gunakan SwingWorker daripada menggulir multithreading Anda sendiri, jika perlu. Sangat mudah untuk memperpanjang SwingWorker dan melakukan tugas jangka panjang sambil memberikan pembaruan rutin kembali ke GUI. Pikirkan mengunduh pembaruan klien. Ini akan menangani penjadwalan utas pekerja untuk Anda dan memungkinkan Anda menerbitkan persentase unduhan kembali ke tampilan, sehingga Anda dapat memperbarui ProgressBar Anda atau apa pun yang Anda miliki.
Hanya itu yang bisa saya sarankan, dalam pengalaman yang diakui terbatas.