Nella nostra azienda utilizziamo lo Swing, poiché questo è supportato dalla JVM, ma utilizziamo colori di sfondo con codice colore per alcuni pannelli e pulsanti.
Se usassimo qualcosa di diverso, come SWT o Jambi, dovremmo anche implementare questi framework per tutte le piattaforme e testare tali framework per tutti i sistemi operativi e le versioni java (supportate). Non è affatto carino.
È comunque abbastanza complicato creare una bella applicazione reattiva con Swing; quindi hai davvero bisogno di usare SwingWorker e simili. Con un po 'di esperienza tuttavia puoi creare una bella applicazione in questo modo.
E anche se non è il framework più veloce da sviluppare, il tempo di sviluppo è davvero piccolo rispetto alla definizione dei requisiti funzionali dell'interfaccia utente, e test e supporto quando la versione viene rilasciata.
Detto questo, il nostro obiettivo sono i desktop. Se scegli come target i dispositivi mobili o hai bisogno di un frontend web, le tue scelte potrebbero variare.
@Jules Olléon: Dispongo di software commerciale scritto in Java che funziona su Windows, OS X e Linux. Io uso l'editor GUI di Swing e IntelliJ (che è ottimo in quanto nasconde automaticamente un sacco di inutili codeplate inutili codice Swing da te) e alcuni componenti personalizzati (questi funzionano al 100% lo stesso su ogni singola piattaforma). Come una barra di avanzamento dual/tri/quad personalizzata, un elenco personalizzato "trova-come-tu-tipo" (come quello che Google sta utilizzando per i suggerimenti) e alcuni componenti personalizzati più avanzati specifici per il mio dominio problematico. – SyntaxT3rr0r
@WizardOfOdds: Cosa LaF stai usando su Windows e Linux? Stai utilizzando lo stile Windows e GTK o lo standard Swing? – Jonas
@Jonas: su Windows offriamo ai nostri utenti la scelta tra il layout Swing predefinito e Nimbus. Su Linux è lo Swing predefinito, qualunque cosa accada: ma ci sono un sacco * di problemi (comprese molte domande qui su SO). Ad esempio abbiamo "schede chiudibili" e noi * dobbiamo * correre sotto 1,5. Quindi abbiamo il nostro riproduttore per schede ecc. È un mondo * selvaggio * di incompatibilità là fuori :) Il software * funziona * su Linux e noi sviluppatori lo sviluppiamo e testiamo su Linux, ma stiamo vendendo solo su OS X e Windows :) – SyntaxT3rr0r