Saya memiliki program yang sangat besar yang saat ini menggunakan SWT. Program ini dapat dijalankan di Windows, Mac dan Linux, dan ini adalah aplikasi desktop besar dengan banyak elemen. Sekarang SWT menjadi agak lama saya ingin beralih ke Swing atau JavaFX. Dan saya ingin mendengar pendapat Anda tentang tiga hal.
Perhatian utama saya adalah apa yang akan lebih baik untuk aplikasi GUI desktop? (Saya melihat online dan banyak orang menyarankan bahwa JavaFX sama baiknya dengan Swing, tapi saya tidak melihat banyak argumen yang valid kecuali perang api pendapat yang sederhana). Itu harus bekerja pada Windows, Mac dan beberapa distribusi Linux populer.
Apa yang lebih bersih dan mudah dirawat?
dan apa yang akan lebih cepat untuk dibangun dari awal?
Saya menggunakan metodologi MVC dalam aplikasi saya, jika itu bisa membantu.
Jawaban:
Semua hal dianggap sama, mungkin JavaFX - API jauh lebih konsisten di seluruh komponen. Namun, ini lebih tergantung pada bagaimana kode ditulis daripada perpustakaan apa yang digunakan untuk menulisnya .
Sangat tergantung pada apa yang Anda bangun. Swing memiliki lebih banyak komponen untuk itu (pihak ke-3 dan juga built-in) dan tidak semuanya telah berjalan ke platform JavaFX yang lebih baru, jadi mungkin ada sejumlah penemuan ulang roda jika Anda memerlukan sesuatu sedikit kustom. Di sisi lain, jika Anda ingin melakukan transisi / animasi / hal-hal video maka ini adalah urutan besarnya lebih mudah di FX.
Satu hal lain yang perlu diingat adalah (mungkin) tampilan dan rasa. Jika Anda benar-benar harus memiliki tampilan dan nuansa sistem default, maka JavaFX (saat ini) tidak dapat menyediakan ini. Bukan hal yang besar bagi saya (saya lebih suka tampilan FX default), tetapi saya sadar beberapa kebijakan mengharuskan pembatasan gaya sistem.
Secara pribadi, saya melihat JavaFX sebagai "datang ke atas dan" perpustakaan UI itu tidak cukup ada belum (tapi lebih dari yang dapat digunakan), dan Swing sebagai UI perpustakaan batas-warisan yang penuh fitur dan didukung untuk saat ini, tapi mungkin tidak akan begitu banyak di tahun-tahun mendatang (dan karena itu kemungkinan FX akan menyusulnya di beberapa titik.)
sumber
Seperti yang dinyatakan oleh Oracle, JavaFX adalah langkah selanjutnya dalam strategi klien kaya berbasis Java. Karenanya, inilah yang saya rekomendasikan untuk situasi Anda:
Untuk info lebih lanjut, silakan lihat posting FAQ ini oleh Oracle mengenai JavaFX di sini.
sumber
Tidak ada yang menyebutkannya, tetapi JavaFX tidak mengkompilasi atau menjalankan arsitektur tertentu yang dianggap "server" oleh Oracle (misalnya Solaris), karena dukungan "jfxrt.jar" yang hilang. Tetap dengan SWT, hingga pemberitahuan lebih lanjut.
sumber
Saya tidak berpikir ada satu jawaban yang benar untuk pertanyaan ini, tetapi saran saya adalah tetap dengan SWT kecuali jika Anda menghadapi keterbatasan parah yang memerlukan perbaikan besar-besaran.
Selain itu, SWT sebenarnya lebih baru dan lebih aktif dipelihara daripada Swing. ( Awalnya dikembangkan sebagai pengganti Swing menggunakan komponen asli).
sumber
Saya akan mencari-cari komponen (pihak ketiga?) Yang melakukan apa yang Anda inginkan. Saya harus membuat komponen Swing khusus untuk tampilan agenda tempat Anda dapat memesan banyak sumber daya, serta kisi mirip Excel yang berfungsi baik dengan navigasi keyboard dan sebagainya. Saya memiliki waktu yang mengerikan membuat mereka bekerja dengan baik karena saya perlu mempelajari banyak seluk-beluk Swing setiap kali saya menemukan masalah. Perilaku mouse dan fokus dan banyak hal lain bisa sangat sulit untuk diperbaiki, terutama untuk pengguna Swing kasual. Saya berharap JavaFX sedikit lebih berorientasi ke masa depan dan lebih lancar.
sumber
Pada notebook lama dengan aplikasi Swing video terintegrasi dimulai dan bekerja jauh lebih cepat daripada aplikasi JavaFX. Sedangkan untuk pengembangan, saya akan merekomendasikan beralih ke Scala - aplikasi Scala Swing sebanding berisi 2,3 kali lebih sedikit kode dari Jawa. Adapun Swing vs SWT: Netbeans GUI jauh lebih cepat daripada Eclipse ...
sumber