© Excellent backgrounds/Shutterstock.com
Wie man Swing-Anwendungen mit JavaFX modernisiert

Aus alt mach neu


Mit JavaFX hat Oracle ein zeitgemäßes UI-Toolkit für Desktop und Embedded platziert. FXML, CSS oder auch das Property-API sind nur einige Beispiele der nützlichen Features, die bei der Entwicklung moderner Oberflächen unterstützen. Spätestens seit Java 8 ist Swing keine Option mehr für neue Projekte, und die Vorteile von JavaFX überwiegen deutlich. Wie sieht es jedoch bei bestehenden Swing-Projekten aus, die gewartet und stetig weiterentwickelt werden?

Vor allem aus der Sicht der Entscheider stellt sich am Anfang stets die Frage: Ist denn die Migration zu JavaFX wirklich nötig, und was rechtfertigt den Aufwand? Diese Frage kann aus verschiedenen Blickwinkeln beantwortet werden. Zum einen gibt es den produktstrategischen Blickwinkel: Ist man durch Marktfaktoren bzw. Kundenanforderungen gezwungen, seine Anwendung zu modernisieren? Zum anderen gibt es den technischen Blickwinkel: Können durch das modernere JavaFX Toolkit mit Features wie Properties API, FXML und CSS die Wartbarkeit der Anwendung erhöht und die Weiterentwicklung vereinfacht werden? Dies sind nur zwei der möglichen Argumente für eine Migration. Oracle selbst liefert eine passende Antwort in den offiziellen JavaFX-FAQ [1]: „Swing wird auf absehbare Zeit Bestandteil des JRE bleiben, neue Anwendungen sollen jedoch möglichst immer mit JavaFX umgesetzt werden. Existierende Swing-Anwendungen können mit JavaFX erweitert werden, dies ermöglicht eine sanfte und fortlaufende Umstellung.“

In den letzten Major Releases von Java wurde zudem bewiesen, dass Oracle an Swing kaum noch weiterentwickelt. Mit Java 7 wurden lediglich das Nimbus-Look-and-Feel und die JLayer-Komponente eingeführt, obwohl ein akuter Bedarf an modernen Toolkit-Funktionalitäten besteht. In Java 8 wurde im Wesentlichen nur die Integration von Swing und JavaFX verbessert, damit in existierenden Projekten der Schritt zu JavaFX erleichtert wird.

Auch in der Community ist der Wandel gut zu beobachten. Vormals wichtige Swing-Bibliotheken wie z. B. das SwingX-Projekt [2] verlieren die Entwickler und werden kaum weiterentwickelt, neue Komponenten entstehen selten. Stattdessen erscheinen zahlreiche neue JavaFX-Bibliotheken und Frameworks, die vor allem typische, noch fehlende Komponenten und eine erweiterte Funktionalität bereitstellen. Ein führendes Beispiel ist das ControlsFX-Projekt [3], das sich bereits in verschiedenen Projekten bewährt hat.

Auf den Umstieg können sicherlich Anwendungen verzichten, die lediglich gewartet und kaum weitere...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang