© Excellent backgrounds/Shutterstock.com
„Houston, wir haben ein Problem!“

Wo ist die Rich-Client-Plattform für JavaFX?


Spätestens seit der JavaOne 2012 hat die Java-Community es schriftlich: Swing ist im Wartungsmodus; Oracle betreibt keine aktive Weiterentwicklung von Swing mehr. Als neue Alternative zum Bau von Rich-Client-Anwendungen ist JavaFX positioniert. JavaFX kann zwar wesentlich mehr als die Widgetbibliotheken SWT oder Swing, ist aber vom Funktionsumfang her nicht mit Rich-Client-Plattformen wie Netbeans RCP oder Eclipse RCP zu vergleichen. Dieser Artikel beschreibt die Lücke zwischen JavaFX und einer ausgewachsenen Rich-Client-Plattform (RCP) und stellt mit stagediver.fx ein leichtgewichtiges Open-Source-Framework vor, das JavaFX in dieser Hinsicht ergänzt.

Es gibt viele Möglichkeiten, mit Java einen Rich Client zu bauen: NetBeans und Eclipse haben umfangreiche Bibliotheken zur Fensterverwaltung, reichhaltige, über den Standard hinausgehende Bedienelemente und eine modulare Laufzeitumgebung für Plug-ins und Softwareupdates. Auch mit HTML5 ist es inzwischen möglich, Rich Clients zu bauen. Für große Anwendungen wird man aber eine typisierte Programmiersprache bevorzugen, da der Refactoring- und Toolsupport (noch?) um Dimensionen besser ist. Gerade bei interaktiven Anwendungen, die große Datenmengen visualisieren und bearbeiten, ist ein Rich Client immer noch die erste Wahl.

Abbildung 1 zeigt vier Wege zum Bau von Rich-Client-Anwendungen mit Java: Eclipse RCP mit der eigenen Widgetbibliothek SWT, NetBeans RCP basierend auf Swing, HTML5 in Verbindung mit einem Java-EE-Server und JavaScript am Client sowie JavaFX. NetBeans ist sehr stark mit Swing verwoben. Mehr als 80 Porzent der NetBeans-Funktionalität basiert auf Swing. Man kann zwar in einem NetBeans-Plattformprojekt JavaFX einbinden, eine homogene Anwendung mit einheitlichem Look and Feel erreicht man aber damit nicht. Der parallele Einsatz von JavaFX und Swing ist komplex und verursacht einige Probleme (mit Java 8 wird zumindest das Problem der unterschiedlichen UI-Threads behoben). Ähnliches gilt für Eclipse: JavaFX-Anwendungen auf Basis dieser IDE sind zwar möglich, die Komplexität des Unterfangens ist aber hoch, da die UI-Komponenten auf SWT-Basis nicht so recht mit JavaFX harmonieren.

adersberger_1.tif_fmt1.jpgAbb. 1: Rich-Client-Ökosysteme

Unser Problem

Wir wollten Anfang 2013 eine umfangreiche Anwendung von NetBeans RCP nach JavaFX portieren, um neue JavaFX-Funktionen wie animierte Charts, Data Binding oder CSS Styling zu nutzen und zukunftssicher zu sein. Die zu portierende Anwendung ist eine Analyseumgebung für Monitoring- und...

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