Swing (genauer gesagt die Java Foundation Classes) ist zwar hinreichend mächtig, hat sich aber in den vergangenen Jahren fast gar nicht weiterentwickelt; moderne GUI-Komponenten, erweiterte Medienunterstützung und Animationen fehlen weitgehend. Anstatt die betagten JFC weiter auszubauen, entschied sich Sun/Oracle für eine komplette Neuentwicklung der GUI-Ebene, die unabhängig von AWT/Swing ist: JavaFX.
Fähigkeiten von JavaFX
JavaFX bietet:
§ Benutzeroberflächen-Komponenten (Buttons, Listen, Tabellen, Menüs …)
§ Eingebettete Web-Inhalte (Integration von HTML/CSS/JavaScript über eine Browser-Komponente)
§ Animationen und Effekte (z. B. Übergänge, Timeline-Animationen)
§ Multimedia-Unterstützung (Einbindung und Wiedergabe von Video und Audio)
§ Grafik in 2D und 3D (inkl. 3D-Objekte, Kameras und Beleuchtung)
JavaFX ist unabhängig von AWT/Swing und bildet einen vollständigen Media-Stack für Java-Oberflächen. Es nutzt direkt die 2D-/3D-Hardwarebeschleunigung moderner Grafikkarten, sodass auch grafisch anspruchsvolle Anwendungen möglich sind.
Die Geschichte von JavaFX: JavaFX 1, JavaFX 2, JavaFX 8, OpenJFX
Ursprünglich plante Sun/Oracle, JavaFX als direkten Flash-Ersatz für Web-Anwendungen zu etablieren. Doch bereits ab 2010 machte die Kombination aus HTML5 + CSS3 + JavaScript diese Idee obsolet – für Rich Internet Applications erwies sich der offene Web-Standard als attraktiver. JavaFX entwickelte sich stattdessen zu einer GUI-Bibliothek für klassische Desktop-Anwendungen, mit der Option, auch auf mobile Endgeräte zu gelangen. Viele der ursprünglichen Swing-Entwicklungsteams bei Sun/Oracle wechselten in das JavaFX-Projekt, während Swing nur noch mit Bugfixes gepflegt wurde.
Wesentliche Meilensteine:
§ 2007/2008: JavaFX wurde 2007 auf der JavaOne-Konferenz erstmals vorgestellt. Ende 2008 erschien JavaFX 1.0 als erstes Release, begleitet von der neuen Skriptsprache JavaFX Script, die eine einfache Erstellung hierarchischer Objektgraphen und ein komfortables Binding von Objekteigenschaften ermöglichte.
§ Im Oktober 2011 folgte JavaFX 2.0 als großer Umbruch. Dabei wurde JavaFX Script ersatzlos gestrichen – Oracle wollte keine weitere eigene Sprache pflegen, sondern eine reine Java-API anbieten, die auch von anderen JVM-Sprachen aus genutzt werden kann. Die JavaFX-API änderte sich mit Version 2 ebenfalls, sodass bestehender Code migriert werden musste. Seitdem gilt JavaFX 1 (und die Literatur dazu) als veraltet.
§ Im August 2012 integrierte Oracle JavaFX 2.2 direkt in Java SE (JDK/JRE 7 Update 6). Erstmals wurde damit ein so großes Modul außerhalb eines Major Releases dem JDK hinzugefügt – ein deutliches Signal, dass JavaFX zum festen Bestandteil der Plattform werden sollte.
§ 2014: Mit Java 8 hielt JavaFX 8 Einzug. Dieses Release baute JavaFX weiter aus und brachte unter anderem eine verbesserte 3D-Grafikunterstützung (z. B. 3D-Objekte und -Beleuchtung) mit, was die Möglichkeiten für Visualisierungen erweiterte.
§ Seit Java 11 (2018) ist JavaFX nicht mehr Teil des offiziellen JDK. Oracle hat die Technologie aus der Java-SE-Plattform herausgelöst und den Quellcode vollständig als Open Source im Projekt OpenJFX (https://openjfx.io/) veröffentlicht. OpenJFX wird seither als eigenständiges Modul gepflegt und über Maven Central oder SDK-Bundles bereitgestellt..
Die Pflege und Weiterentwicklung liegen heute in den Händen der OpenJFX-Community, zu der auch Unternehmen wie Gluon (https://gluonhq.com/) beitragen. Gluon stellt kommerzielle Support-Angebote bereit und entwickelt Werkzeuge sowie Mobile-Ports (iOS, Android), sodass JavaFX nicht nur auf dem Desktop (Windows, macOS, Linux), sondern auch auf mobilen Plattformen eingesetzt werden kann.
JavaFX spielt seine Stärken insbesondere in Nischenanwendungen aus, etwa bei wissenschaftlichen Visualisierungen, industrieller Software, Lehrzwecken oder Rich-Client-Anwendungen.