JavaFX

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
JavaFX
Entwickler Oracle
Aktuelle Version 8u74 (wird zusammen mit Java SE versioniert)
Betriebssystem Microsoft Windows, Mac OS X, Linux
Kategorie Klassenbibliothek
Lizenz GPL mit GPL linking exception
OpenJFX auf java.net

JavaFX ist ein Framework für plattformübergreifende Rich Internet Applications. Es ist eine Java-Spezifikation von Oracle und steht in direkter Konkurrenz zu Adobe Flash bzw. Flex und Microsoft Silverlight. Die JavaFX-Laufzeitumgebung ist seit der Version Java SE Runtime 7 Update 6 Teil jeder x86 Java SE installation.[1]

JavaFX kann auf diversen Endgeräten wie Set-Top-Boxen, Desktop-Computern und Blu-ray-Disc-Abspielgeräten zum Einsatz kommen, und ist als Bestandteil der Java-Runtime-Umgebung verfügbar.[2] Im Hinblick auf Sicherheit muss der Anwender die erste Ausführung von JavaFX-Anwendungen zuvor bestätigen.

Funktionsweise[Bearbeiten | Quelltext bearbeiten]

JavaFX-Anwendungen in der Version 1.x werden mithilfe von JavaFX Script[3] programmiert. Ab der Version 2.x werden JavaFX-Anwendungen in Standard-Java geschrieben. Alternativ kann man Oberflächen mit einer XML-Sprache namens FXML beschreiben und damit eine Trennung nach dem MVC-Konzept (Model-View-Controller) umsetzen (der Controller ist typischerweise in Java geschrieben). Die in den Java-Klassenbibliotheken enthaltenen Funktionen und Schnittstellen sind bei der Entwicklung von JavaFX-Applikationen verfügbar. Daneben stellt JavaFX eine eigene Klassenbibliothek bereit, die unter anderem Funktionen zur grafischen Präsentation und zur lokalen und Netzwerk-Datenhaltung enthält.[4] Etliche Komponenten der Benutzerschnittstelle für JavaFX werden aus der normalen Java-Umgebung geerbt. Zur Programmierung stehen verschiedene Profile (etwa common und desktop) zur Verfügung. JavaFX-Programme, die mit der Common-API geschrieben wurden, können grundsätzlich auf allen Endgeräten ausgeführt werden, wohingegen Desktop-Elemente auf die Benutzung auf Desktop-Computern beschränkt sind. JavaFX war am Anfang insbesondere auf die Grafikprogrammierung und die Kommunikation mit REST-Services ausgerichtet, aber die geplante Ablösung von Swing durch JavaFX gibt der Technologie mittlerweile eine viel bedeutendere Stellung im Java-Umfeld. Neue UI-Komponenten lassen sich schnell erstellen, und alle UI-Komponenten lassen sich per CSS gestalten.

Ausführung und Verteilung[Bearbeiten | Quelltext bearbeiten]

JavaFX-Anwendungen können vom Webserver heruntergeladen und auf dem Client, typischerweise dem Browser, ausgeführt werden. Die Anwendung kommuniziert mit dem Webserver über HTTP-GET, REST oder Webservices.

JavaFX-Anwendungen können damit einerseits als Rich Internet Applications für Desktop-Computer verstanden und über Java Web Start oder als Java-Applet ausgeführt werden. Die Installation und Ausführung von Anwendungen geschieht in dem Fall über Java Web Start, indem das Programm entweder direkt als WebStart-Programm ausgeführt und eine Desktopverknüpfung erstellt wird, oder ein Applet aus dem Browser gezogen und dadurch installiert wird. Zusätzlich wird das Programm so automatisch aktualisiert. Die für die Anwendung erzeugten Dateien können auf einen Webserver gespielt werden. Der Webserver benötigt keine Java-Laufzeitumgebung, muss aber für den MIME-Typ application/x-java-jnlp-file konfiguriert sein. JavaFX-Applikationen können auf diese Weise über einen Hyperlink auf der Website gestartet werden. Parallel dazu ist die Einbettung einer JavaFX-Anwendung in eine Website (über ein JavaScript) möglich. Wichtiger ist für JavaFX aber die Tatsache, dass Oracle JavaFX explizit als Ablösung von Swing positioniert. Damit soll JavaFX auch im Desktop-Bereich als auch bei mobilen Java-Applikation die Standardtechnologie für die Erstellung von grafischen Oberflächen werden.

JavaFX Scene Builder[Bearbeiten | Quelltext bearbeiten]

Der JavaFX Scene Builder ist ein grafisches Tool, das die Erstellung von FXML-Dateien vereinfacht. Mit dem Tool können GUI-Elemente ohne Programmierkenntnisse entworfen werden.

Oracle hat die Entwicklung des Tools eingestellt und den Quelltext des Programms unter einer BSD-ähnlichen Lizenz freigegeben.[5] Daraufhin hat die Firma Gluon die Wartung und den kommerziellen Support übernommen.[6]

Entwicklungsgeschichte[Bearbeiten | Quelltext bearbeiten]

JavaFX wurde im Mai 2007 angekündigt und im Mai des folgenden Jahres auf der Entwicklerkonferenz JavaOne vorgestellt.

JavaFX 1.0[Bearbeiten | Quelltext bearbeiten]

Am 4. Dezember 2008 gab Sun JavaFX 1.0 offiziell als Entwicklerkit für Windows und Mac OS X frei.[7]

JavaFX 1.2[Bearbeiten | Quelltext bearbeiten]

Die Version 1.2 wurde im Juni 2009 veröffentlicht. Sie enthielt unter anderem anpassbare UI-Controls, zusätzliche Layout-Klassen (Tile, Stack, Flow, ClipView, Panel), Unterstützung für RSS/Atom-Feeds. Sie ist nicht abwärtskompatibel. Erst seit dieser Version wurden Linux und Solaris unterstützt.

JavaFX 1.3[Bearbeiten | Quelltext bearbeiten]

Die Version 1.3 (Codename SoMa) wurde am 22. April 2010 veröffentlicht. Die offensichtlichste Neuerung ist eine teils enorme Steigerung der Performance. Neu ist zudem JavaFX TV, eine offizielle CSS-API zur Gestaltung von JavaFX-Controls, einige neue, gewünschte Controls sowie eine Unterstützung von 3D.[8] Die Version 1.3.1 wurde am 21. August 2010 veröffentlicht und verbesserte die Fortschrittsanzeige beim Aufstarten und das Debugging in Netbeans 6.9.1.

JavaFX 2.0[Bearbeiten | Quelltext bearbeiten]

JavaFX 2.0 erschien wie angekündigt im dritten Quartal 2011.[9] In dieser Version wird auf JavaFX Script verzichtet, stattdessen wurden die bestehenden JavaFX Script APIs auf Java portiert. Damit entfällt das Erlernen einer weiteren Skriptsprache für Java-Entwickler. In JavaFX 2.0 wurde außerdem das Hardware-Rendering optimiert, sodass nun Spiele und aufwendige 3D-Darstellungen möglich sein sollen. HTML- und JavaScript-Inhalte rendert JavaFX 2.0 mit Hilfe der WebKit-Bibliothek. Oracle hat im Zuge der Veröffentlichung der neuen Version angekündigt, JavaFX zukünftig als Open-Source-Projekt im Rahmen des OpenJDK weiterzuentwickeln.[10]

JavaFX 2.2[Bearbeiten | Quelltext bearbeiten]

JavaFX 2.2 erschien im August 2012. Die Serverumgebung ist seit Version Java SE 7u6 in die Standardumgebung integriert und kann damit zunehmend vorausgesetzt werden. Eine Installation neben Java SE 6 war noch möglich. Ohne dringende Nachbesserungen für Java 6 ab Februar 2013 endete auch eine kostenlose Weiterentwicklung für die Installation neben Java 6.[11]

JavaFX 8[Bearbeiten | Quelltext bearbeiten]

Mit dem Rollout von Java 8 wurde auch die Version von JavaFX auf 8 angehoben. Mit der Version 8u33 wurde der ARM-Support von Oracle für JavaFX eingestellt. Daher ist JavaFX nicht mehr in den offiziellen Java Distributionen für ARM enthalten.[12]

Literatur[Bearbeiten | Quelltext bearbeiten]

  • Ralph Steyer: Einführung in JavaFX. Moderne GUIs für RIAs und Java-Applikationen. Springer Vieweg-Verlag, 2014, ISBN 978-3-658-08523-0, S. 339.
  • Carl Dea: JavaFX 2.0. Introduction by Example. Apress, 2011, ISBN 978-1-4302-4257-4 (englisch).
  • James Weaver, Weiqi Gao, Stephen Chin, Dean Iverson, Johan Vos: Pro JavaFX 2. A Definitive Guide to Rich Clients With Java Technology. Apress, 2011, ISBN 978-1-4302-6872-7 (englisch).

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. JavaFX FAQ. Abgerufen am 29. Feb. 2016.
  2. Device Manufacturer Partners for JavaFX by Sun
  3. JavaFX Script Programming Reference
  4. docs.oracle.com bei Oracle
  5. Simon Vienot: openjfx-dev Mailing Liste. "Scene Builder is now open source!". 3. Dez. 2013. Abgerufen am 29. Mär. 2016.
  6. Gluon supports Scene Builder. 4. Mär. 2015. Abgerufen am 29. Mär. 2016.
  7. JavaFX 1.0 is live
  8. JavaFX 1.3 Veröffentlichung (Memento vom 30. April 2011 im Internet Archive)
  9. javafx.com
  10. Neuerungen in JavaFX 2.0. Netzwelt, abgerufen 13. Oktober 2011
  11. What’s new in JavaFX 2.2
  12. JDK for ARM 8u33 release notes. Oracle. 16. Februar 2013. Abgerufen am 29. Februar 2016: „Starting with JDK 8u33, JavaFX Embedded is removed from the ARM bundle and is not supported.