15 Jahre Erfahrung FreeCall 0800 tutegos

Neue JavaFX-Komponenten und Frameworks

Die Seite gibt eine Übersicht über freie und kommerzielle JavaFX-Koponenten und Frameworks. Für Swing schaue hier.

ControlsFX (3-Clause BSD)

ControlsFX ist eine quelloffene Bibliothek mit einer Reihe von hochqualitativen Komponenten, das Javadoc gibt einen tollen Überblick. Neben den Komponenten erweitert ControlsFX die JavaFX Action-API. Es adressiert JavaFX 8 in Java 8. Die Features-Seite zeigt Screenshots und Beispiele. Der Code liegt bei GitHub.

Tabellenkomponente

SpreadsheetView

PropertySheet

propertySheet

Range-Slider

RangeSlider

Rahmen 

Button mit Rahmen

Schaltflächenleiste und segmentierte Schaltfächen

ButtonBar

segmentedButton

Checkboxen in Listen, Combo-Boxen und Bäume

CheckComboBox, CheckListView, and CheckTreeView

Dialoge

Dialogs

dialog-commandlink-no-masthead

lightweight

Grid-View Layout

GridView

HyperlinkLabel

HyperlinkLabel

Benachrichtigungen

Notication Ppane

Pop-Over-Menü

A PopOver with no content.

A PopOver with content.

Ratings

Rating

JFXtras und JFXtras Labs

JFXExtras ist ein Bündel von Projekten, die im Wesentlichen aus jfxtras und jfxtras-lab bestehen. Die jfxtras-Komponenten-Bibliothek sollte eigentlich alle Stabile enthalten, ist aber im Grunde leer (und seit 2 Jahren unangetastet), wie auch die Homepage schreibt: "Currently all components are in Labs." Bei Labs ist alles noch im Fluss und hier finden sich mehr Checkins. Grundsätzlich hat die Bibliothek einen guten Reifegrad, denn sie geht auf Zeiten von JavaFX 1.0 zurück, nur ist mittlerweile alles vollständig neuentwickelt auf der Basis JavaFX 2.2, ein JavaFX 8 Port wird parallel entwickelt.

Zu den Möglichkeiten zählen:

Jim Weaver stellt in einem Video einige Komponenten vor:

fontawesomefx

Dave Gandy hat mit Font Awesome einen Zeichensatz mit mehr als 300 Symbolen entwickelt. Das ist für Web-Seiten attraktiv, da man mittlerweile einfach Fonts in CSS einbetten kann und die Symbole als Vektorgrafiken beliebig skaliert werden können. Jens Deters integriert in fontawesomefx den Font in JavaFX. Die Nutzung ist einfach, da es für jedes Symbol ein Enum gibt:

Label  l = AwesomeDude.createIconLabel( AwesomeIcon.CHECK );
Button b = AwesomeDude.createIconButton( AwesomeIcon.CLOUD, text );

Von seiner Homepage ein Beispiel: Screenshot

DataFX

DataFX ist ein sehr aktives Projekt, was sich zum Ziel gesetzt hat, Daten von unterschiedlichen Quellen in die JavaJX-Komponenten zu bringen. Daher ist es auch keine typische Komponentenbibliothek sondern es dient rein zum Füllen der JavaFX-Komponenten, insbesondere den Listen, Tabellen, Bäumen. Entwickelt wird das Framework von den beiden Deutschen Johan Vos (Java Champion) und Hendrik Ebbers, im Magazin Javaaktuell gibt es einen deutschsprachigen Artikel von ihnen.

GMapsFX

Die GMapsFX-Bibliothek unter der Apache Lizenz bindet die Google Maps in eine Java-Applikation ein und bietet eine Java-API für Kartenelemente wie Pin oder Verbindungen. Java 8 ist Voraussetzung.

GMapsFX GUI

ReactFX (BSD 2-Clause License)

Thomas Mikula fasst die JavaFX 8 Bibliothek ReactFX mit den Worten "Reactive event streams, inhibitable bindings and more for JavaFX" zusammen. Die Bibliothek veröffentlicht spezifische Ereignisse einer JavaFX-Anwendung auf einer Art lokalen Bus (Typ EventStream) und erlaubt es auf der anderen Seite Klienten an diesem EventStream Bus zu lauschen. Geht es zum Beispiel darum Maus-Klicks auf einem Knoten zu registrieren und dann bei Klicks Code auszuführen sieht es im Code so aus:

EventStream<MouseEvent> clicks = EventStreams.eventsOf( node, MouseEvent.MOUSE_CLICKED );
clicks.subscribe( click -> System.out.println("Klick!") );

So gesehen bietet die API noch keinen Vorteil, spannend wird es, wenn der EventStream gefiltert, mit anderen EventStreams verschmolzen oder die Ereignisse gemappt werden -- die Programmierung erinnert an die neue Stream-API aus Java 8.

RichTextFX (GPLv2 mit Classpath Exception)

Seit JavaFX 8 kann JavaFX dank TextFlow problemlos Text mit unterschiedlichen Formatierungen anzeigen. RichTextFX (ehemals CodeAreaFX) greift darauf zurück und bietet mit StyleClassedTextArea eine Komponente, bei der einfach gewisse Teile vom Text ausgezeichnet werden können. Ein kleiner Editor kommt als Demo mit:

Screenshot of the RichText demo

Weiterhin gibt es eine vorgefertigte Editor-Komponente an, die als Basis für eigene Code-Editoren dienen kann:

Screenshot of the JavaKeywords demo

Über Code oder CSS lässt sich die Darstellung ändern.

UndecoratorBis (proprietär)

Fensterrahmen von JavaFX-Anwendungen verändern.

ScreenFX (GPL)

Die quelloffene Bibliothek ScreenFX bringt Stages auf unterschiedliche Monitore und kümmert sich um die korrekten Größenänderungen usw. quartered stages example

Tastaturcodes lassen sich für die Umschaltung definieren. Standardmäßig ist die Bibliothek mit Java 8 compiliert.