Suche
JavaFX Real-World Applications - Teil 1

JavaFX-Anwendungen aus der Praxis: So schön kann ein Java UI sein!

Alexander Casall
JavaFX

Auf der JavaOne im November 2015 haben Dirk Lemmermann (Freelancer) und ich (Alexander Casall) eine Session zu Real-World-Anwendungen mit JavaFX gegeben. Wir haben einige Apps vorgestellt, die wir entweder selbst für unsere Kunden entwickelt haben, oder an deren Entwicklung wir zumindest beteiligt waren. In diesem Artikel fassen wir unseren Vortrag zusammen und zeigen die vorgestellten Anwendungen. Zusätzlich habe ich einige andere JavaFX-Entwickler gebeten, ihre Apps hier kurz zu präsentieren.

Insgesamt haben wir 20 JavaFX-Anwendungen aus der echten Praxis zusammengetragen, die wir Ihnen in einer vierteiligen Serie vorstellen wollen. Vielen Dank an Dirk Lemmermann, Jan Gassen, Rob Terpilowski, Sean Phillips, Angelica LeiteDenny Israel und Manuel Mauky für die Informationen zu ihren JavaFX-Anwendungen. Bevor wir uns über die Anwendungen unterhalten haben, habe ich meinen Gesprächspartnern einige Fragen zu JavaFX gestellt:

Nach den praktischen Erfahrungen mit deiner JavaFX-Anwendung: Was sind für dich die Highlights von JavaFX?

 Was denkst du im Allgemeinen über JavaFX?

 JavaFX, Swing, SWT, HTML5 – wer macht das Rennen? Oder noch besser: Was sollte wann verwendet werden?

 Wie zufrieden bist du mit der Arbeit von Oracle an JavaFX?

Was vermisst du bei der Arbeit mit JavaFX?

Die Antworten von: Dirk Lemmermann

Die Antworten von: Jan Gassen

Die Antworten von: Rob Terpilowski

Die Antworten von: Sean Phillips

Werfen wir nun einen Blick auf die Anwendungen, die wir und unsere Kollegen erstellt haben.

CuratorOR Caliop EIZO GmbH

Beigetragen von Dirk Lemmermann2

Anwendungsgebiet: Krankenhaus / Arztpraxis

Dirk: CuratorOR Caliop, entwickelt von der EIZO GMBH in Deutschland, ist eine Anwendung, die in OP-Sälen von Krankenhäusern installiert werden soll. Sie ist ausgelegt auf Konsolen, die an der Wand montiert werden und mit einem Windows PC verbunden sind, auf dem Java 8 läuft. Die Konsolen sind außerdem mit zusätzlicher Hardware ausgestattet, um Video-Input-Signale an diverse Monitore / Displays zu verteilen und Video-Signale aufzuzeichnen (Video und Screenshots). Das OP-Personal nutzt Caliop dann, um auf Patientendaten zuzugreifen, OPs zu dokumentieren und die produzierten Dokumente in der zentralen Datenbank des Krankenhauses abzulegen.iW_8_et1
1

Ein sehr spannender Aspekt an diesem Projekt war die Tatsache, dass die Vorgabe aus einem sehr detaillierten HTML Mockup bestand, welcher ausgiebigen Gebrauch von CSS und Animationen machte. Auch der integrierte Media Player hat uns gut gefallen, weil dadurch nur sehr wenige Codezeilen nötig waren, um aufgenommene Videos direkt innerhalb des JavaFX UI abspielen zu können. Alle Kundenwünsche ließen sich mit JavaFX erfüllen.

Beigetragen von Rob Terpilowski

Anwendungsgebiet: Disposition

Rob: Bei Lynden, Inc. handelt es sich um ein Fracht- und Logistik-Unternehmen, das in Seattle und dem Anchorage-Gebiet beheimatet ist. „Lynden Navigator“, die Anwendung die wir entwickelt haben, hat zwei Zielgruppen innerhalb des Unternehmens.

Wir haben Fracht-Terminals in 48 US-Bundesstaaten sowie in Alaska, auf Hawaii und in Kanada. Der Navigator soll den Manager der Terminals Zugang zu Informationen über die Ladungen ermöglichen, die an ihrem Standort ankommen und die diesen verlassen sollen. Das soll dabei helfen, Ressourcen – sowohl Mitarbeiter als auch Material (Wagen, Anhänger etc) – effizienter zu verteilen.

fms

Unten: JavaFX, oben: Swing

Die zweite Nutzergruppe des Navigators ist das Kundenservice-Personal. Da der Navigator auf der NetBeans Rich Client Platform aufbaut, konnten wir die Kundenservice-Funktion als NetBeans Plug-in einfügen und sie ganz leicht in den oben genannten Planungsbereich der Anwendung integrieren. Mit diesem Plug-in können Kundenservice-Mitarbeiter auf verschiedenen Wegen nach Frachtgütern suchen, inklusive der Lieferungsnummer, dem Kundennamen, der Adresse und so weiter. Die Anwendung zeigt dann die gesamte Geschichte der ausgewählten Frachtobjekte an, wie sie während des Transports durch unser System aufgezeichnet wurde. Alle Dokumente im Zusammenhang mit der Lieferung können vom Nutzer auch ausgedruckt oder per Mail verschickt werden, beispielsweise Lieferbestätigungen oder Ladescheine. Die neuen Funktionen dieser Anwendungen wurden mit JavaFX für die UI-Komponenten entwickelt, während die vorhandenen Swing-UI-Komponenten weiterhin unterstützt werden, weil sie für andere Plug-ins noch verwendet werden.

Atlas Trader

Beigetragen von Rob Terpilowski

Anwendungsgebiet: Finanzen

Rob: Um Käufe und Verkäufe über unseren Rohstoffhändler „Quantitative Brokers“ abzuwickeln, 21verwenden wir eine Software namens „Atlas Trader“. Dort kann der Nutzer auswählen, welchen Rohstoff (Gold, Öl, Weizen, etc) er kaufen oder verkaufen möchte und dazu verschiedene Aspekte des Handels spezifizieren, beispielsweise wie viel gekauft werden soll, wann der Handel durchgeführt werden soll und wie viel Zeit dem Handel zur Durchführung eingeräumt werden soll. Diese Informationen werden dann über das Financial Information Exchange (FXI) API an den Broker übermittelt. Der Broker übermittelt anschließend diverse Updates hinsichtlich der Bestellung zurück an die Anwendung, die dem Nutzer Feedback zum Status der Bestellung gibt.

3 (1)

t1

Quote Monitor

Beigetragen von Rob Terpilowski

Anwendungsgebiet: Finanzen

41Um die Preise der Rohstoffe in unserem Besitz zu überwachen und Profite und Verluste in Echtzeit zu überblicken, haben wir die Anwendung „Quote Monitor“ entwickelt. Mit Quote Monitor ist es möglich, Preise in Echtzeit zu überwachen und Alarme auszugeben, wenn Gewinne oder Verluste an eine vorher eingestellte Schwelle stoßen. Diese Anwendung ist mit dem Interactive Brokers Java API verbunden, um Rohstoff-Preise in Echtzeit von den verschiedenen Rohstoff-Börsen abzurufen.

Template Editor IAV

Beigetragen von Denny Israel

Anwendungsgebiet: Analyse von Fahrzeugflotten-Daten

Die nächste Anwendung wurde von unserem Unternehmen (Saxonia Systems AG) für unseren Kunden fehler_in_analyseIAV entwickelt. Der Template Editor ist ein Client, der zur IAV AMeDA Plattform gehört. Dabei  handelt es sich um ein Daten-Analyse-System für große Mengen an Fahrzeug-Flotten-Daten.

Der Client enthält eine Template Engine, um Masken zu erzeugen. Die Engine nutzt eine Kombination aus FXML-Dateien und Metadate Templates, die in der Runtime zaehlerevaluiert wird, um Nutzer-Input in XML-Dateien umzuwandeln. Die geschriebenen XML-Dateien sind dann die Konfigurations-Dateien, die auf die IAV-AMeDA-Plattform zur Datenanalyse deployt werden. Der Mechanismus ist sehr allgemein gehalten, wodurch neue Templates leicht hinzugefügt werden können, indem ein FXML und ein XML File definiert werden.

Die Analyse-Konfiguration wird dann als ZIP File gespeichert und auf die Analyse-Plattform hochgeladen, die die Analyse templatesmit Daten der gesamten Fahrzeugflotte durchführt. Vor dem Upload wird die Analyse lokal im Template-Editor mit einem kleinen Datensatz getestet. Der Nutzer kann das Ergebnis dieses Testdurchlaufs einsehen und seine Konfiguration noch einmal anpassen, falls notwendig.

Auf den Bildern zu sehen: Die Resultate einer lokalen Analyse, ein Konfigurations-Template und die Liste aller Konfigurationen.

Verwandte Themen:

Geschrieben von
Alexander Casall
Alexander Casall
Alexander Casall hat 2011 seinen Master in Informatik abgeschlossen und arbeitet seitdem bei der Saxonia Systems AG als Softwareentwickler. Sein Fokus liegt auf der Implementierung moderner Multi-Touch-Applikationen mit JavaFX. U.a. arbeitet er an Kollaborationswerkzeugen zur verteilten, agilen Entwicklung. In seiner Freizeit entwickelt Alexander native iOS Apps (www.buildpath.de), veröffentlicht Artikel in Fachzeitschriften, oder hält Vorträge auf Konferenzen (JavaOne, JAX, W-JAX) und User Groups.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.