Esistono molti framework gui per java, ma cosa è riconosciuto come il framework di scelta di oggi?
Quanto segue è la mia comprensione dei diversi framework, per favore correggimi se sbaglio. Questa è una serie di domande molto vagamente definite, ma continuo a pensare che sia utile per chiunque stia pensando di creare applicazioni con interfaccia grafica.
È il vero fondamento dello swing, funziona bene ma manca di componenti avanzati. Se si intende creare applicazioni avanzate, AWT non è probabilmente la strada da percorrere. Tuttavia, per applicazioni con gui più piccole che non richiedono interfacce utente avanzate. Questo potrebbe adattarsi perfettamente in quanto è un framework collaudato.
Basato su AWT come precedentemente indicato. Nella sua infanzia è stato considerato lento e difettoso e ha portato IBM a creare SWT per Eclipse. Tuttavia con Java 5 (o 6?) Swing è diventato il framework di scelta per la creazione di nuove applicazioni. Swing ha molti componenti ricchi ma mancano ancora in alcune aree. Un esempio è che non esiste un componente TreeTable con funzionalità complete che può eseguire l'ordinamento e il filtro / la ricerca.
Creati da IBM per Eclipse, sembravano pensare che Swing non fosse adatto a Eclipse al momento. Di per sé è piuttosto di basso livello e utilizza i widget nativi della piattaforma tramite JNI. Non è affatto correlato a Swing e AWT. La loro API è tuttavia un po 'goffa e non intuitiva. Hanno alcuni componenti avanzati come una TreeTable. (ma non credo che supportino l'ordinamento e il filtraggio out of the box). SWT utilizza alcuni binding nativi (tramite JNI?) E su Internet si afferma che questo framework non dovrebbe essere utilizzato nei progetti di oggi. (perchè no?)
Basato su Swing e la sua missione è creare componenti ricchi per lo swing. Ancora in fase di sviluppo. (non molto attivo però.) Avere un set di componenti molto bello, come ad esempio TreeTable. Ma TreeTable non supporta il filtraggio e l'ordinamento per quanto ne so. Tuttavia, supporta la ricerca con l'evidenziazione.
Si noti che SwingX sono componenti (AFAIU) che sono estensioni o composizioni di componenti Swing esistenti
JGoodies
Un framework di cui non so nulla ... Quali sono i suoi punti di forza e di debolezza? Che cosa distingue Jgoodies dal resto?
JGoodies OTOH riguarda PLAF e layout.
L'ultima ammiraglia di Java / Oracle. promettendo di essere lo standard di fatto nello sviluppo di ricche applicazioni desktop o web.
Esegue il rendering dell'interfaccia utente utilizzando Java2D, riducendo così al minimo l'impatto di eredità (IMO, gonfio) di Swing e AWT. (@Augustus Thoo)
Il suo focus principale sembra essere su RIA (Rich Internet Applications), ma sembra che possa essere applicato anche alle applicazioni desktop. E come commento personale, sembra molto interessante! Mi piace soprattutto che sia un progetto apache.
https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html
Un wrapper java per la libreria qt nativa che è scritta in c / c ++. Molto potente, ampiamente usato e accettato. Ha molti componenti della GUI e un'API facile da usare.
Quindi, per provare a riassumere un po 'di quello che ti sto chiedendo:
Supponiamo che oggi volessi creare un'applicazione desktop in Java che coinvolga molti componenti avanzati, cosa dovrei scegliere? E perché?
Quale di questi framework dovrebbe essere riconosciuto come deprecato e quale dovrebbe essere riconosciuto come framework di un futuro lontano?
Che cos'è l'attuale framework di fatto standard e quali strumenti utilizzate per creare applicazioni java gui?
Potrei pentirmi di averlo chiesto, ma provo comunque:
C # /. Si dice che Net abbia un ottimo set di componenti facili da usare che possono essere flessi in ogni direzione possibile. E dopo aver studiato in qualche modo diversi framework Java, non riesco a dire lo stesso di Java. Perchè è questo? Perché java (che è il linguaggio di programmazione più utilizzato al mondo) non ha lo stesso set di componenti della GUI?
È solo che Java ha basato i suoi componenti GUI a un livello molto più basso, ed è possibile scrivere tutti questi componenti avanzati che sto cercando, ma devi fare molto se non tutto il lavoro da solo?