JavaFX - Neue Hoffnung für Java auf dem Desktop?

Konkurrenz für Flash, AIR und Silverlight? Suns Entwicklungs- und Laufzeitumgebung JavaFX näher beleuchtet.

In Pocket speichern vorlesen Druckansicht 11 Kommentare lesen
Lesezeit: 8 Min.
Von
  • Dj Walker-Morgan
Inhaltsverzeichnis

Ob im Serverraum oder auf dem Mobiltelefon: Java ist überall. Nur den Desktop, ironischerweise der Einsatzort, für den die Programmiersprache ursprünglich gedacht war, hat Java nie so richtig erobert. Auch die komplette Überarbeitung des GUI-Toolkits mit Swing, die Beschleunigung von Java-Code und neue Verteilungsmechanismen wie WebStart konnten nicht dafür sorgen, dass Java die Bedeutung für den Desktop bekam, die ihre Schöpfer sich vorgestellt hatten.

Im Dezember 2008 gab Sun JavaFX für Windows und Mac OS X in Version 1.0 frei. Linux- und OpenSolaris-Anwender mussten sich bis zum jetzt erschienenen JavaFX 1.2 gedulden.

JavaFX in Suns Entwicklungsumgebung Netbeans

Das JavaFX-Paket besteht aus einer Entwicklungsumgebung (NetBeans 6.5, Bibliotheken und Compiler) und einer Laufzeitumgebung. Beide Komponenten setzen auf bereits vorhandenen Tools aus dem Java-Ökosystem auf. Mit JavaFX Script verfügt die Entwicklungsumgebung über eine eigene Sprache, die jedoch beim Kompilieren nach wie vor Java-Class-Dateien erzeugt. Die JavaFX-Runtime-Engine basiert auf der Java Virtual Machine (JVM) und funktioniert mit den gängigen Browsern. Zahlreiche Verbesserungen machen JavaFX jedoch zu einem Werkzeug von ganz anderem Kaliber als das althergebrachte Java Runtime Environment (JRE).

JavaFX Script, das erstmals unter dem Code-Namen "F3" (Form Follows Function) auftauchte, ist Suns Antwort auf den oft hervorgebrachten Einwand, dass Java eine zu formale Sprache sei. Die neue Sprache ist einfacher als Java, erzeugt aber ebenfalls Java-Class-Dateien und läuft nicht nur in der JVM, sondern kann im Bedarfsfall auch auf Java-Bibliotheken und anderen Code zugreifen. Java-Entwickler verfügen so über eine UI-Sprache, die von der Business-Logik getrennt ist, die sie womöglich schon in Java implementiert haben.

Ein kleines Beispiel soll den Einsatz von JavaFX in der Praxis veranschaulichen:

package hifromheise;

import javafx.scene.*;
import javafx.stage.*;

Stage {
title: "Hi"
scene: Scene {
content: Text {
font: Font {
size: 24
}
x: 10
y: 30
content: "Hi From Heise"
}
}
}

Ein simples JavaFX-Programm

Diese Zeilen deklarieren eine sogenannte Stage (Bühne, Gerüst) für die Anwendung. Die Stage enthält eine Scene, einen virtuellen Schauplatz für die diversen UI-Elemente. Auf der Scene positioniert ist ein Text-Element mit Angaben zur Schriftart, Platzierung und Inhalt. Die Stage ist für die in der Sprache enthaltenen Aktionen und Effekte zuständig.