Ada cukup banyak kerangka kerja gui di luar sana untuk java, tetapi apa yang diakui sebagai kerangka pilihan saat ini?
Berikut ini adalah pemahaman saya tentang kerangka kerja yang berbeda, tolong perbaiki saya jika saya salah. Ini adalah serangkaian pertanyaan yang sangat longgar, tetapi saya masih berpikir itu berharga bagi siapa pun yang berpikir untuk membuat aplikasi gui yang kaya.
Merupakan dasar dari ayunan, ia berkinerja baik tetapi kurang komponen canggih. Jika Anda bermaksud membuat aplikasi yang kaya, AWT mungkin bukan cara yang tepat. Namun untuk aplikasi gui yang lebih kecil yang tidak memerlukan antarmuka pengguna yang kaya. Ini mungkin cocok dengan sempurna karena kerangka kerja yang telah dicoba dan terbukti.
Berdasarkan AWT seperti yang dinyatakan sebelumnya. Dalam masa pertumbuhannya dianggap lambat dan bermasalah dan menyebabkan IBM membuat SWT untuk Eclipse. Namun dengan Java 5 (atau 6?) Swing menjadi kerangka pilihan untuk membangun aplikasi baru. Ayunan memiliki banyak komponen yang kaya tetapi masih kurang di beberapa daerah. Salah satu contohnya adalah tidak ada komponen TreeTable berfitur lengkap yang dapat melakukan penyortiran dan pemfilteran / pencarian.
Diciptakan oleh IBM untuk Eclipse, mereka tampaknya berpikir bahwa Swing tidak cocok untuk Eclipse saat itu. Dengan sendirinya adalah level yang cukup rendah, dan ia menggunakan widget asli platform melalui JNI. Ini tidak terkait dengan Swing dan AWT sama sekali. Namun API mereka agak kikuk dan tidak intuitif. Mereka memiliki beberapa komponen canggih seperti TreeTable. (tapi saya tidak berpikir mereka mendukung penyortiran dan penyaringan di luar kotak). SWT menggunakan beberapa binding asli (melalui JNI?) Dan kata-kata kasar di internet adalah bahwa kerangka kerja ini tidak boleh digunakan dalam proyek saat ini. (kenapa tidak?)
Berdasarkan Swing dan misinya adalah menciptakan komponen yang kaya untuk swing. Masih dalam pengembangan. (meskipun tidak terlalu aktif.) Memiliki set komponen yang sangat bagus, seperti misalnya TreeTable. Tetapi TreeTable tidak mendukung pemfilteran dan pengurutan sejauh yang saya tahu. Namun itu mendukung pencarian dengan penyorotan.
Perhatikan bahwa SwingX adalah komponen (AFAIU) yang merupakan ekstensi atau komposisi dari komponen Swing yang ada
JGoodies
Kerangka kerja yang saya tidak tahu tentang ... Apa itu kekuatan dan kelemahan? Apa yang membedakan Jgoodies dari yang lain?
JGoodies OTOH adalah tentang PLAF dan tata letak.
Unggulan terbaru Java / Oracle. berjanji untuk menjadi standar facto dalam mengembangkan aplikasi desktop atau web yang kaya.
Ini membuat UI menggunakan Java2D, sehingga meminimalkan dampak (IMO, kembung) warisan Swing dan AWT. (@Augustus Thoo)
Fokus utamanya sepertinya ada pada RIA (aplikasi internet Rich), tetapi sepertinya itu juga bisa diterapkan pada aplikasi desktop. Dan sebagai komentar pribadi, Terlihat sangat menarik! Saya terutama suka itu proyek apache.
https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html
Wrapper java ke pustaka qt asli yang ditulis dalam c / c ++. Sangat kuat, banyak digunakan dan diterima. Memiliki banyak komponen GUI dan API yang mudah digunakan.
Jadi, untuk mencoba meringkas sedikit dari apa yang saya tanyakan:
Katakanlah saya ingin membuat aplikasi desktop hari ini di Jawa yang melibatkan banyak komponen canggih, apa yang harus saya pilih? Dan mengapa?
Kerangka kerja mana yang harus diakui sudah usang dan mana yang harus diakui sebagai kerangka kerja masa depan yang jauh?
Apakah kerangka kerja standar de-facto saat ini dan alat apa yang Anda gunakan untuk membuat aplikasi java gui?
Saya mungkin menyesal menanyakan hal ini, tetapi saya tidak mencobanya:
C # /. Net dikatakan memiliki seperangkat komponen yang sangat mudah digunakan yang dapat dilenturkan ke segala arah. Dan setelah menyelidiki kerangka kerja java yang berbeda sampai batas tertentu saya tidak bisa mengatakan hal yang sama tentang Java. Kenapa ini? Mengapa java (yang merupakan bahasa pemrograman yang paling banyak digunakan di dunia) memiliki komponen GUI yang sama?
Apakah hanya bahwa java telah mendasarkan komponen gui mereka pada level yang jauh lebih rendah, dan dimungkinkan untuk menulis semua komponen canggih yang saya cari, tetapi Anda harus melakukan banyak hal jika tidak semua pekerjaan sendiri?