Saya seorang pengembang web di siang hari dan berpikir untuk membangun aplikasi desktop nyata pertama saya. Idenya adalah untuk membangun alat yang mengotomatiskan tugas yang sangat berulang dalam aplikasi web di mana tidak ada API yang tersedia.
Saya tahu saya ingin menggunakan Java. Saya menggunakannya sebelumnya untuk hal-hal web, tahu sintaks cukup baik dan ingin aplikasi menjadi lintas plattform semudah mungkin.
Di mana saya tidak begitu yakin apakah saya harus menggunakan SWT atau Swing. Karena audiens utama saya menggunakan Windows, saya ingin melihatnya asli di sana. Linux dan Mac harus bekerja, tetapi tampilannya tidak begitu penting di sini.
Jadi apa argumen untuk dan terhadap setiap Kerangka UI, Swing atau SWT?
Terima kasih.
PS: Saya kembangkan di Windows menggunakan Eclipse. Tapi sedang berpikir tentang bermain dengan Netbeans.
Jawaban:
Ayunan Pro:
Cons Swing:
Pro SWT:
Kontra SWT:
sumber
Suatu hal penting untuk dipertimbangkan adalah bahwa beberapa pengguna dan beberapa reseller (Dell) menginstal VM 64 bit pada Windows 64 bit mereka, dan Anda tidak dapat menggunakan perpustakaan SWT yang sama pada VM 32 bit dan 64 bit.
Ini berarti Anda harus mendistribusikan dan menguji paket yang berbeda tergantung pada apakah pengguna memiliki VM Java 32-bit atau 64-bit. Lihat masalah ini dengan Azureus, misalnya, tetapi Anda juga memilikinya dengan Eclipse, di mana saat ini versi build di halaman unduhan depan tidak berjalan pada VM 64 bit.
sumber
pro swing:
Tetapi pada intinya saya tidak akan menyarankan untuk menggunakan ayunan 'murni' atau swt ;-) Ada beberapa kerangka kerja aplikasi untuk swing / swt out. Lihat di sini . Pemain terbesar adalah netbeans (swing) dan eclipse (swt). Kerangka kerja lain yang bagus bisa berupa griffon dan 'set komponen' yang bagus adalah pivot (swing). Griffon sangat menarik karena mengintegrasikan banyak perpustakaan dan tidak hanya mengayun ; juga pivot, swt, dll
sumber
Saya akan menggunakan Swing untuk beberapa alasan.
Sudah ada lebih lama dan memiliki lebih banyak upaya pengembangan diterapkan untuk itu. Oleh karena itu kemungkinan fitur lebih lengkap dan (mungkin) memiliki lebih sedikit bug.
Ada banyak dokumentasi dan panduan lain tentang cara menghasilkan aplikasi pemain.
Jika Anda ingin membangun aplikasi yang sangat kaya fitur, Anda mungkin ingin memeriksa NetBeans RCP (Rich Client Platform). Ada kurva belajar, tetapi Anda dapat menyusun aplikasi yang bagus dengan cepat dengan sedikit latihan. Saya tidak memiliki pengalaman yang cukup dengan platform Eclipse untuk membuat penilaian yang valid.
Jika Anda tidak ingin menggunakan seluruh RCP, NetBeans juga memiliki banyak komponen berguna yang dapat ditarik dan digunakan secara independen.
Satu kata nasihat lainnya, lihat ke manajer tata letak yang berbeda. Mereka membuat saya tersandung untuk waktu yang lama ketika saya sedang belajar. Beberapa yang terbaik bahkan tidak ada di perpustakaan standar. Alat MigLayout (untuk Swing dan SWT) dan JGoodies Forms adalah dua yang terbaik menurut saya.
sumber
Saya harus memilih swing hanya karena itu "asli" untuk java.
Plus, lihat di http://swingx.java.net/ .
sumber
Untuk kebutuhan Anda, sepertinya intinya adalah menggunakan Swing karena sedikit lebih mudah untuk memulainya dan tidak terintegrasi secara erat ke platform asli seperti SWT.
Ayunan biasanya adalah taruhan yang aman.
sumber
Pertanyaan menarik. Saya tidak tahu SWT terlalu baik untuk membual tentang hal itu (tidak seperti Swing dan AWT) tapi inilah perbandingan yang dilakukan pada SWT / Swing / AWT.
http://www.developer.com/java/other/article.php/10936_2179061_2/Swing-and-SWT-A-Tale-of-Two-Java-GUI-Libraries.htm
Dan inilah situs di mana Anda bisa mendapatkan tutorial tentang apa saja di SWT ( http://www.java2s.com/Tutorial/Java/0280__SWT/Catalog0280__SWT.htm )
Semoga Anda membuat keputusan yang tepat (jika ada keputusan yang benar dalam pengkodean) ... :-)
sumber
Jika Anda berencana untuk membangun aplikasi fungsional penuh dengan lebih dari beberapa fitur, saya akan menyarankan untuk langsung menggunakan Eclipse RCP sebagai kerangka kerjanya.
Jika aplikasi Anda tidak akan tumbuh terlalu besar atau persyaratan Anda terlalu unik untuk ditangani oleh kerangka kerja normal, Anda dapat melompat dengan aman menggunakan Swing.
Pada akhirnya, saya sarankan Anda mencoba kedua teknologi untuk menemukan yang lebih cocok untuk Anda. Seperti Netbeans vs Eclipse vs IntelliJ, tidak ada jawaban yang benar mutlak di sini dan kedua kerangka kerja memiliki kelemahan sendiri.
Ayunan Pro:
Pro SWT:
sumber
Satu hal yang perlu dipertimbangkan: Pembaca layar
Untuk beberapa alasan, beberapa komponen Swing tidak berfungsi dengan baik ketika menggunakan screenreader (dan Java AccessBridge untuk Windows). Ketahuilah bahwa berbagai pembaca layar menghasilkan perilaku yang berbeda. Dan dalam pengalaman saya, SWT-Tree melakukan jauh lebih baik daripada Swing-Tree dalam kombinasi dengan screenreader. Jadi aplikasi kami akhirnya menggunakan komponen SWT dan Swing.
Untuk mendistribusikan dan memuat perpustakaan SWT yang tepat, Anda mungkin menemukan tautan ini berguna: http://www.chrisnewland.com/select-correct-swt-jar-for-your-os-and-jvm-at-runtime-191
sumber
SWT diciptakan sebagai respons terhadap kelesuan Swing di sekitar pergantian abad. Sekarang karena perbedaan dalam kinerja menjadi diabaikan, saya pikir Swing adalah pilihan yang lebih baik untuk aplikasi standar Anda. SWT / Eclipse memiliki kerangka kerja yang bagus yang membantu dengan banyak kode pelat ketel.
sumber