Fast so schön wie Mac OS

Mit JavaFX bekommen Java-Applikationen ein neues Gesicht

12.09.2013 von Frank  Pientka und Hendrik  Ebbers
Bislang konnte Java nur eingeschränkt mit ansprechenden Oberflächen glänzen. Das ändert sich mit JavaFX, das für eine große Anzahl an Plattformen Anfang 2014 verfügbar sein wird. Damit sollen Java-Anwendungen künftig auf Desktops, Smartphones und Embedded-Geräten eine gute Figur machen – eine interessante Option vor allem für Unternehmen, die alte Oberflächen ablösen oder auf mobile Umgebungen umstellen wollen.

Obwohl Java von Anfang an mit Oberflächenfunktionen wie AWT (Abstract Window Toolkit) und Swing ausgestattet war, setzten sich diese Technologien auf dem Desktop nicht durch. Daran konnte auch JavaFX Script von Sun nichts ändern. Doch seit JavaFX Bestandteil der Java 6-Ablaufumgebung ist, besteht wieder Hoffnung, dass sich Java stärker auf Client-Oberflächen durchsetzt – vor allem im Embedded-Bereich. Als Endgeräte kommen hier beispielsweise Smartphones, Kiosk-Systeme, Set-Top-Boxen, Einplatinen-Computer, Desktop-Computer oder Blu-ray-Player in Frage.

Interessant ist die Unterstützung aber auch für mobile Anwendungen. Diese können über WebView-Node als Anwendungen mit Web-Technologien entwickelt und in JavaFX-Programme integriert werden. Dabei ist es von Vorteil, dass JavaFX CSS (Cascading Style Sheets) und die WebKit Rendering Engine einsetzt. Diese wird unter anderem von Google Chrome genutzt. Bei Bedarf lassen sich bei diesem hybriden Ansatz dennoch die leistungsfähigeren nativen Funktionen nutzen. Durch dieses Konzept ist es beispielsweise möglich, interaktive Google Maps Darstellungen in Desktop-Anwendungen zu integrieren.

Neben WebView gibt es noch weitere Komponenten, die über die allgemein üblichen Darstellungsformen wie Tabellen und Buttons hinausgehen. Mit MediaView lassen sich verschiedenste Formate wie Videos oder Sound-Dateien nahtlos in eine JavaFX-Anwendung integrieren. Zusätzlich bietet JavaFX mehrere Komponenten zur Darstellung von Business-Diagrammen an. Diese können leicht durch die angebotenen Funktionen angepasst und sogar über CSS gestaltet werden.

Mit Java 8 bekommt JavaFX eine volle 3D-Unterstützung.
Foto: Materna

Mit Java 8 bekommt JavaFX eine volle 3D-Unterstützung. Die 3D-Daten-Visualisierung wird so deutlich erleichtert, um beispielsweise Lagepläne oder komplexe Diagramme übersichtlicher darzustellen. Hierbei unterstützt JavaFX nicht nur 3D-Modelle, sondern auch dynamische Lichtquellen und verschiedene Texturformate. Schließlich wird JavaFX künftig komplett im Java-Standard integriert sein. So stehen alle relevanten Bestandteile für Business- und Multimedia-Anwendungen zur Verfügung.

Geschäftsanwendungen bald so schick wie Mac OS?

JavaFX wird auch Komponenten zur Darstellung von Business-Diagrammen mitbringen.
Foto: Materna

Der JavaFX-Nutzung in Geschäftsapplikationen steht künftig nichts mehr im Wege. Eine sehr gute Werkzeugunterstützung sowie moderne Funktionen erlaubt es den Entwicklern, deutlich einfacher intuitive und ansehnliche Oberflächen zu erstellen. Spezielle UI- und Workflow-Wünsche des Kunden lassen sich damit einfacher und eleganter umsetzen. Beispielsweise ist das GUI-Komponenten-Toolkit von JavaFX modular aufgebaut und sehr einfach erweiterbar. Interessante Einsatzmöglichkeiten liefert unter anderem die Enzo-Bibliothek. Ein weiteres Beispiel ist AquaFX, das ein auf Apple Mac OS basierendes Design für alle Standardkomponenten von JavaFX bereitstellt. Durch Nutzung dieser Bibliothek ist eine JavaFX-Anwendung nicht mehr von einer nativen Mac-Anwendung unterscheidbar.

Installation von Java-Anwendungen wird einfacher

Eine erleichterte Installation wird durch native Installer erreicht. Durch ein Build-Tool von Oracle ist jedes JavaFX-Programm als native Anwendung auslieferbar. Unter Windows bekommt der Kunde so zum Beispiel einen eigenen Installer geliefert, der mithilfe von Wizard-Dialogen durch die Installation der Anwendung leitet. Hierbei kann man keinen Unterschied mehr zwischen der Java-Applikation und einer reinen Windows-Anwendung (Office, etc.) feststellen. Ein großer Vorteil ist, dass die unterlagerte Java-Umgebung fester Bestandteil der nativen Anwendung ist und eine vorherige Java-Installation bzw. nachgelagerte Administration dadurch komplett entfällt. Die ersten JavaFX-Programme sind sogar bereits im Mac AppStore von Apple zu finden. Dieser Spezialfall funktioniert momentan zwar noch über Umwege, wird aber mit hoher Wahrscheinlichkeit zum Erscheinen von Java 8 noch deutlich verbessert und ausgebaut.

Neben den klassischen Desktop-Rechnern ist JavaFX auch auf zahlreichen anderen Plattformen lauffähig. Durch die Unterstützung von Embedded Geräten und des ARM-Chipsatzs ist JavaFX auf kleinster Hardware ausführbar und bietet so beispielsweise eine sehr elegante Lösung für Kiosk-Systeme und Home Automation.

JavaFX bald auch auf iPad und Windows Surface?

Auch für moderne Arbeitsgeräte wie das Windows Surface mit Windows RT ist eine komplette Integration vorhanden. Grade auf diesen Geräten zeigen sich weitere Stärken wie die MultiTouch-Fähigkeit von JavaFX. Zoom- und Swipe-Gesten, wie sie beim iPad vorkommen, werden von JavaFX voll unterstützt und sind leicht umzusetzen. Hierdurch ist endlich ein Einzug dieser neuen Interaktionsform in moderne Business-Anwendungen möglich.

Zwar sind sowohl iOS als auch Android bisher noch keine offiziell unterstützten Plattformen für JavaFX, aber das wird sicherlich nicht mehr lange dauern. So ist es beispielsweise erst kürzlich gelungen, JavaFX-Anwendungen mit Hilfe der Open Source-Lösung RoboVM auf einem iPad zu betreiben.

Neben der hier beschrieben UI-Gestaltung und den Interaktionen bietet das JavaFX-Ökosystem noch eine Fülle weiterer wichtiger Funktionen und Werkzeuge. Durch die konsequente Nutzung von CSS und die hierdurch mögliche Trennung von Entwickler- und Design-Teams wird der Entwicklungsprozess deutlich vereinfacht. Als Schnittmenge zwischen diesen beiden Instanzen kann der Scene Builder genutzt werden, mit dem sich Dialog-Layouts so einfach wie in einem modernen Publisher-Programm erstellen lassen. Während die Designer diese Layouts ausrichten und gestalten, kann das gesamte Entwicklerteam bereits eine An- und Einbindung dieser Dialoge in das Programm vornehmen. Für eine saubere und schnelle Anbindung an vorhandene Enterprise- und SOA-Systeme ist auch gesorgt. Projekte wie DataFX und OpenDolphin nehmen Entwicklern hierbei einen Großteil der Arbeit bereits ab und erlauben eine Integration und Darstellung von Web Services-Daten.

JavaFX: Fazit

JavaFX bringt Java auf modernen Benutzeroberflächen wieder ins Spiel und verbindet Desktop, Mobile, Embedded und Web auf eine einzigartige Weise. Spätestens mit dem Erscheinen von Java 8 im nächsten Jahr wird JavaFX die gewünschte Aufmerksamkeit und Verbreitung erlangen. Durch die wöchentlich erscheinenden Previews von Java 8 kann mit der Umsetzung von größeren Projekten bereits heute begonnen werden. Aufgrund der breiten Plattformbasis und der modernen UI-Funktionen von JavaFX lohnt sich also wieder ein zweiter Blick für alle Unternehmen, die alte Oberflächen ablösen oder auf mobile Umgebungen umstellen wollen.

Kurzgefasst

Die weitere Verbreitung von mobilen und Embedded Geräten stellt ganz neue Anforderungen an die Gestaltung und Bedienung von Applikationen. Da Java gerade für diese Bereiche ursprünglich entworfen wurde, ist zu begrüßen, dass Oracle mit JavaFX eine neue Plattform für moderne Rich Client-Oberflächen anbietet. JavaFX wird mit der kommenden JDK 8-Version Anfang 2014 ausgeliefert. Für Entwickler vereinfacht sich dadurch der Entwurf von Rich Client-Anwendungen für unterschiedliche Plattformen. Mit dem JavaFX Packager lässt sich die Ablaufumgebung gleich integrieren, so dass der Anwender gar nicht merkt, dass er mit einer Java-Anwendung arbeitet. Selbst so kostengünstige Umgebungen wie der Einplatinen-Computer Raspberry Pi werden hiermit unterstützt.

Ist Java bereits auf meinem PC installiert?
Anbieter Oracle stellt die Möglichkeit zur Verfügung, dies direkt über die Web-Seite feststellen zu lassen.
Träge Nutzerschaft
Die Nutzer lassen sich Zeit mit dem Update: Nutzeranteil von neueren Java-Versionen (gepatcht), verglichen mit älteren und angreifbaren (betroffenen) Versionen im Wochenrhythmus.
Freigabe erforderlich
Die Sicherheitsmechanismen des Browsers (hier Google Chrome) greifen: Bevor Java – auch nur zur Überprüfung – freigegeben wird, muss dies vom Nutzer genehmigt werden.
Vorsicht, umfassende Rechte
Java läuft eben nicht nur im Browser ab: In diesen Fällen kommt eine Anwendung auf dem eigenen PC zum Einsatz, die teilweise mit einem uneingeschränkten Zugriff arbeitet.
Support für Windows 8
Alle Überprüfungen können natürlich auch unter Windows 8 ausgeführt werden: Hier bietet Microsoft zusätzliche Unterstützung durch eine eigene Infoseite an.
Ob's hilft?
Die Installation der Java-Software unter Windows 8: Oracle sieht natürlich eher die Vorteile in dieser Software und kehrt diese bei der Installation heraus.
Mehr Müll
Eine sehr schlechte Angewohnheit, die Java mit Adobes Flash teilt: Bei der Installation versucht die Software durch bereits angewählte Menüpunkte, dem Anwender zusätzliche "Crapware" auf das System zu bringen beziehungsweise Einstellungen wie dir für die Suchmaschine zu "verbiegen".
Java zwingend erforderlich
Anwendungen, die nur laufen, wenn Java installiert ist: Die Freeware JDownloader deutet schon in ihrem Namen an, dass sie nur bei Vorhandensein der Java Runtime zum Einsatz kommen kann.
Java zwingend erforderlich II
Auch das Anonymisierungs-Tool JAP (JonDo) ist darauf angewiesen, dass auf dem PC, auf dem es zum Einsatz kommt, die Java Runtime installiert ist. Ansonsten kann sie von der Software mit installiert werden.
Control Panel
Die Sicherheitseinstellungen auf einem Windows-8-System: Von vielen Nutzern unbemerkt, installiert Java auch einen Eintrag in der Systemsteuerung, von dem aus das sogenannte Control Panel aufgerufen werden kann.
Simple Deinstallation
Das Java Control Panel steht natürlich auch bei den Windows-7-Systemen zur Verfügung: Mit seiner Hilfe ist auch eine Deinstallation der Software leicht vorzunehmen.
Frequenz der Updates einstellen
Mit Hilfe des Control Panels können Nutzer sowohl die Frequenz als auch die Art und Weise festlegen, in der entsprechende Updates von Java heruntergeladen und installiert werden.
Plug-In deaktivieren
Deaktivierung des Java-Plug-Ins direkt im Betriebssystem: Auch das funktioniert über das Control Panel in der Systemsteuerung im das Kästchen für den Browser abgewählt wird. Der Browser muss danach neu gestartet werden.
The Java vanishes
So verschwindet Java wieder vom System: Die Software kann, wie jede andere Software unter Windows, direkt unter dem Eintrag Programme (beziehungsweise „Programme und Funktionen“ unter Windows 7) wieder deinstalliert werden.
Plug-In-Management
Die Einstellungen der Plug-Ins im Firefox-Browser: Hier können die Anwender festlegen, ob Java-Applets von ihrem Browser ausgeführt werden sollen – und sie können dieses Plug-In an dieser Stelle auch wieder entfernen.
Alles noch fit?
Sollte regelmäßig vorgenommen werden: Mozillas Firefox erlaubt die Überprüfung der Plug-Ins darauf, ob sie noch dem aktuellen Stand entsprechen.
Meister bei den Exploits:
Java auch im Jahr 2013 "führend", wie diese Übersicht über die von SourceFire gefundenen Indicators of compromise zeigt. (Quelle: SourceFire/FireAMP soluntion, Cisco)