Gan, ane masih lagi belajar soal pemrograman java, terutama pemrograman GUI swing nya ney. Ane lagi belajar dengan melihat code2 orang, latihan melihat bagaimana logika mereka dalam menyelesaikan suatu masalah. Ane pake kasus file ini aja gan :
DISINI
Ane mau tanya banyak untuk alur programnya gan, terutama juga terkait syntaxnya.
1. Pada program main() nya, kenapa bisa langsung memanggil method dari kelas tersebut ya(initGUI())? Bukankah aturannya, kita harus bentuk objek tersebut (TCPChat tcpChat = bew TCPChat()), kemudian memanggil method yang ada pada class tersebut
2. Ini class kok bisa ga ada konstruktor nya, kira2 kenapa, dan menyalahi aturan ga sih?
3. Kelas ini mengimplementasikan Runnable, kalo ga salah ini terkait dengan Swing Thread, dimana jika ingin memodifikasi perubahan component, agar thread safe harus menggunakan metode ini. Seberapa pentingnya penggunaan thread safe ini, karena ketika ane utak atik ney program, dengan menonaktifkan syntax ini SwingUtilities.invokeLater(tcpObj); menjadi tcpObj.run() hasilnya tetep sama saja, ketika aplikasi berjalan ga pernah terjadi konflik pada thread, jadi kira2 penggunaan thread safe ini konkritnya seperti apa, boleh kalo agan2 berkenan memberikan contoh aplikatifnya.
4. Method repaint() gunanya juga untuk apa to, soalnya ane ilangin, tetep ga ada masalah dengan perubahan component di dalam frame nya.
5. Trus juga fungsi ini untuk apa ya : synchronized (toAppend), mengapa harus di synchronized, disini ane ga melihat kegunaannya. Boleh penjelasan konkretnya jika tidak menggunakan synchronized ini?
Maaf jika terlihat newbie tuk pertanyaannya, berharap banyak agan2 yang bisa share untuk membantu ane memahami konsep pemrograman GUI Swing java.
