In unserem Unternehmen verwenden wir Swing, da dies von der JVM standardmäßig unterstützt wird, aber wir verwenden für einige Panels und Schaltflächen farbcodierte Hintergrundfarben.
Wenn wir etwas anderes verwenden würden, wie SWT oder Jambi, müssten wir auch diese Frameworks für alle Plattformen ausrollen und diese Frameworks für alle OSSes und (unterstützten) Java-Versionen testen. Überhaupt nicht nett.
Es ist jedoch ziemlich schwierig, eine nette responsive Anwendung mit Swing zu erstellen; Sie müssen also SwingWorker und ähnliches verwenden. Mit ein wenig Erfahrung können Sie jedoch auf diese Weise eine schöne Anwendung erstellen.
Und auch wenn es nicht das schnellste Framework ist, um zu entwickeln, ist die Entwicklungszeit im Vergleich zur Definition der funktionalen Anforderungen der Benutzeroberfläche und des Testens und Supports, wenn die Version veröffentlicht wird, wirklich gering.
Das heißt, unser Ziel ist Desktops. Wenn Sie mobile Geräte als Ziel haben oder auch ein Web-Frontend benötigen, können Ihre Auswahlmöglichkeiten variieren.
@Jules Olléon: Ich vertreibe kommerzielle Software in Java geschrieben, die unter Windows, OS X und Linux funktioniert. Ich benutze Swing und IntelliJ GUI-Editor (was großartig ist, weil es automatisch viele sinnlose lange uninteressante Swing-Code von Ihnen verbirgt) und einige maßgeschneiderte Komponenten (das funktioniert 100% das gleiche auf jeder einzelnen Plattform). Wie eine benutzerdefinierte Dual/Tri/Quad-Fortschrittsanzeige, eine benutzerdefinierte Liste zum Suchen nach Typ (wie die, die Google für Vorschläge verwendet) und einige speziellere benutzerdefinierte Komponenten, die spezifisch für meine Problemdomäne sind. – SyntaxT3rr0r
@WizardOfOdds: Welche LaF verwenden Sie unter Windows und Linux? Verwenden Sie den Windows- und GTK-Stil oder den Swing-Standard? – Jonas
@Jonas: Unter Windows bieten wir unseren Benutzern die Wahl zwischen dem Standard-Swing-Layout und Nimbus. Unter Linux ist es das Standard-Swing, was auch immer das sein mag: Aber es gibt eine Menge Probleme (einschließlich vieler Fragen hier auf SO). Zum Beispiel haben wir "verschließbare Tabs" und wir * müssen * unter 1.5 laufen. Daher haben wir einen eigenen Renderer für Tabs usw. Es ist eine * wilde * Welt der Inkompatibilitäten da draußen :) Die Software * funktioniert * unter Linux und wir Entwickler entwickeln und testen sie unter Linux, aber wir verkaufen nur unter OS X und Windows :) – SyntaxT3rr0r