Skip to main content

2022 | Buch

Einführung in JavaFX/OpenJFX

Moderne GUIs für RIAs und Java-Applikationen

insite
SUCHEN

Über dieses Buch

Das JavaFX-Framework gibt es schon seit einigen Jahren, hat aber mit den ersten Versionen fast nur noch den Namen gemeinsam. Seit der Version 2 hat JavaFX jedoch einen festen und ausgereiften Stand erreicht und ist mittlerweile die aktuelle Technologie im Java-Umfeld, um leistungsfähige und moderne grafische Benutzeroberflächen (GUI) erstellen zu können. Dieses Buch stellt Ihnen dazu eine Vielzahl an Widgets und Komponenten samt dem JavaFX-API vor. Es zeigt Ihnen auch, wie Sie mit Hilfe des APIs sowohl aus Java heraus, aber auch über einen XML-basierenden Ansatz (FXML) samt einem visuellen Designer-Tool (Scene Builder) grafische User-Interfaces erstellen können. So können Sie sogar ohne Java-Kenntnisse eine leistungsfähige und moderne GUI erstellen, aber auch Kenntnisse in anderen GUI-Technologien wie Swing übertragen und sogar diese Komponenten in JavaFX integrieren.

Inhaltsverzeichnis

Frontmatter
Kapitel 1. Einleitung & Grundlagen
Ohne Grundlagen geht es nicht
Zusammenfassung
Im einleitenden Kapitel wollen wir die zentralen Grundlagen zum Umfeld behandeln, in dem man mit JavaFX bzw. OpenJFX programmiert. Das beginnt bei einem allgemeinen Blick in die Welt von Java und JavaFX/OpenJFX mit einer kompakten Vorstellung von Java und insbesondere einer Übersicht zu JavaFX/OpenJFX, seiner Historie (was auch die Bedeutung von JavaFX im Bezug zu OpenJFX umfasst), der aktuellen Architektur und den Zielen. Ebenso besprechen wir in diesem Paragrafen, was Sie als Voraussetzungen für den Umgang mit JavaFX benötigen. Das umfasst die Vorkenntnisse, die Hardware und das Betriebssystem sowie die Java- und JavaFX-Basisumgebung samt erweiterter Tools wie NetBeans und dem Scene Builder. Desgleichen betrachten wir die Installationen und Konfiguration der Tools, denn gerade mit NetBeans und dem Scene Builder sowie selbstverständlich der Java-Basis wollen wir im Buch intensiv arbeiten.
Ralph Steyer
Kapitel 2. Hilfe und Basiswissen
Wo kommen Sie im Fall des Falles weiter?
Zusammenfassung
In diesem kompakten Kapitel wollen wir einen kurzen Blick auf die JavaFX-Dokumentation, Hilfen und die Standardbeispiele werfen. Früher konnte man sagen, dass JavaFX lernen von Oracle lernen heißt. Das gilt heute nur noch eingeschränkt, da Oracle die Verantwortung für JavaFX abgetreten hat. Dennoch stellt Ihnen Oracle weiterhin Quellen zur Verfügung, die immer noch zum Nachschlagen nützlich sind. Auch wenn diese oft nicht mehr auf dem neusten Stand sind. Die offizielle Webseite zu OpenJFX und das Wiki des OpenJDKs sind weitere und meist aktuelle Quellen. Sie können dort ebenso die Möglichkeiten von JavaFX erfahren und nicht zuletzt werden Sie anhand der Standardquellen bereits eine Menge über JavaFX lernen. Ebenso erhalten Sie einige Tipps zum effektiven Umgang mit unseren Referenz-IDEs. Diese unterstützen Sie mit einigen integrierten Features auf vielfältige Weise bei der Programmierung von JavaFX-Applikationen. Dazu besprechen wir einige elementare Regeln von Java und CSS, damit Sie in folgenden Listings im Buch die wesentlichen Strukturen verstehen
Ralph Steyer
Kapitel 3. FXML und der JavaFX Scene Builder
Eine JavaFX-GUI (weitgehend) ohne Java und Quelltext erstellen
Zusammenfassung
In diesem Kapitel steht die Erstellung von Applikationen auf XML-Ebene (mit FXML) im Fokus. Das umfasst aber an der Stelle vor allen Dingen die Arbeit mit dem Scene Builder. Den direkten Kontakt mit dem Java- als auch dem XML-Quellcode umgehen wir weitgehend. So ganz können wir den Blick in die Java-Ebene dabei zwar nicht vermeiden, aber wir beleuchten nur ganz wenig die Hintergründe, die als Grundlage einer FXML-GUI eine Rolle spielen. Denn auch eine FXML-Applikation benötigt einige Java-Ressourcen, um die Grundfunktionalität zu gewährleisten. Deshalb werfen wir einen kurzen Blick auf die Start- und die Controllerklasse einer FXML-Applikation.
Ralph Steyer
Kapitel 4. Gestalten mit dem Inspector des Scene Builders
Komponenten gestalten
Zusammenfassung
Auch in diesem Kapitel steht die Erstellung von FXML-Applikationen mit dem Scene Builder im Fokus, aber dieses Mal die Details zur Gestaltung von Oberflächenelementen. Dies wird zum einen die Möglichkeiten des Inspectors genauer in den Fokus führen, aber zum anderen auch weitere Themen wie die Verwendung von Style Sheets (CSS) unter FXML und letztendlich JavaFX im Allgemeinen berühren.
Ralph Steyer
Kapitel 5. Behind the scene – der Aufbau von FXML
Das besondere XML: FXML
Zusammenfassung
Ein Weg, um unter JavaFX Oberflächen zu beschreiben, baut auf XML auf. Die Sprache FXML ist – wie der Name ziemlich deutlich macht – in XML formuliert. Daher ist es sicher sinnvoll, dass Sie Grundlagen von XML kennen, auch wenn Sie später nur mit einem Tool wie dem Scene Builder arbeiten und den damit generierten XML-Code nicht direkt bearbeiten wollen. Der Fokus in diesem Kapitel liegt nun auf dem Aufbau von FXML und wie Sie auch von der Quelltextseite Oberflächen beschreiben können.
Ralph Steyer
Kapitel 6. JavaScript und der JavaFX Scene Builder
Logik und Funktionalität mit dem Scene Builder, JavaScript und FXML
Zusammenfassung
Der Fokus in diesem Kapitel liegt wieder auf FXML und dem Scene Builder, jedoch in diesem Fall auf der Umsetzung von echter Programmlogik. In der Regel wird diese in einer JavaFX-Applikation über die Verbindung der FXML-Ressourcen mit den Eventhandling-Methoden in der Java-Controllerklasse umgesetzt (Stichwort MVC). Wir werden dessen ungeachtet diesen Part hier noch nicht behandeln, aber dennoch werden unsere Applikationen echte Funktionalitäten besitzen. Denn in FXML kann man ebenso mittels JavaScript oder anderer Skriptsprachen direkt Programmlogik implementieren. Wie das geht und auf was Sie zu achten haben, erfahren Sie am Beispiel der Verwendung von JavaScript in diesem Kapitel. Oracle möchte so eine Vorgehensweise auch explizit bei JavaFX unterstützen. Daran sieht man wieder deutlich die Absicht hinter JavaFX, auch Kreative und Nicht-Hardcore-Programmierer produktiv ins Boot zu holen. Denn als echte Web-Technologie ist JavaScript weit verbreitet und bekannt, auch bei vielen Personen, die sich nicht wirklich als Programmierer verstehen. Nicht zuletzt ist JavaScript viel einfacher zu lernen als Java und das erleichtert zusätzlich den Einstieg in JavaFX und damit das gesamte Java-Umfeld.
Ralph Steyer
Kapitel 7. Java – die Schnellbahn
Mitten hinein in die Java-Welt
Zusammenfassung
In diesem Kapitel widmen wir uns den Details zum Einsatz von Java unter JavaFX. Das umfasst einen Blick auf das neue JavaFX-API und genauere Informationen zum Aufbau der Java-Basis jeder JavaFX-Applikation sowie die Container und Widgets, aus denen sich eine Oberfläche zusammensetzt. Ebenso behandeln wir das Eventhandling unter Java sowie den Einsatz von JavaScript direkt aus Java heraus.
Ralph Steyer
Kapitel 8. Ereignisse und mehr
Actio und Reactio
Zusammenfassung
Das Eventhandling von JavaFX ist die konsequente Weiterentwicklung der Ereignisbehandlung unter dem AWT und Swing beziehungsweise Java selbst, aber auch dem Web. Die Kenntnisse aus den bekannten Techniken können weitgehend übernommen werden, wobei natürlich die Besonderheiten von JavaFX zu beachten sind. Und unter diesem besonderen Gesichtspunkt besprechen wir die Ereignisbehandlung in diesem Kapitel. Beachten Sie, dass dieses Kapitel damit mehr in die Java-Welt eintaucht und ein gewisses Verständnis dazu voraussetzt.
Ralph Steyer
Kapitel 9. JavaFX und Swing
Vorfahre trifft Nachfahre
Zusammenfassung
In diesem kompakten Abschnitt werden wir uns um die Verbindung von JavaFX und Swing kümmern. Im Grunde ist das nicht schwer, aber wir müssen dabei die Synchronisation zweier Welten beachten, die erst einmal nicht so ohne weiteres miteinander auskommen. Zudem sollte man anmerken, dass auch dieser Abschnitt recht technisch ist und wieder Vorkenntnisse in Java samt Multithreading beziehungsweise Swing sehr hilfreich sind. Leser ohne diesen Background brauchen sich aber nicht zu erschrecken, denn Sie werden ja bewusst JavaFX einsetzen wollen und so eine Mischkonstellation höchstwahrscheinlich nie in der Praxis sehen. Sie können dieses Kapitel gerne überspringen, bevor Sie davon demotiviert werden. Ich verstehe dieses Kapitel also als optionale Zusatzinformation für Swing-Programmierer.
Ralph Steyer
Kapitel 10. HTML-Content
Der JavaFX-Browser und das Web
Zusammenfassung
In JavaFX kann man an vielen Stellen mit Web-Technologien arbeiten, sei es die Gestaltung mit CSS, die deklarative Beschreibung der GUI mit XML oder die Programmierung von Funktionalität mit JavaScript. Auch HTML kann an einigen Stellen eingesetzt werden. Viele dieser Möglichkeiten waren bereits in Swing vorhanden, aber in JavaFX wurden sie ausgebaut und vor allen Dingen unter einer einheitlichen Architektur bereitgestellt. Wir haben diese Möglichkeiten im Buch schon an diversen Stellen gesehen. Um was wir uns in diesem Kapitel kümmern möchten, ist die Verwendung von dem eingebetteten JavaFX-Browser. Dieser ist eine WebView-Komponente samt einem vollständigen API. Das ermöglicht die Integration von echtem Web-Content direkt in eine JavaFX-Applikation.
Ralph Steyer
Kapitel 11. Diagramme
Visuelle Darstellung von Mathematik
Zusammenfassung
Zahlen und Mathematik sind sicher nicht jedermanns Sache. Das merkt man daran, dass Mathematik bei den meisten Schülern nicht gerade zu den Lieblingsfächern zählt oder zählte. Ich merke das auch an den Reaktionen meiner Mitmenschen, wenn ich mich als Mathematiker oute. Die Vorstellung, was sich hinter abstrakten Zahlenreihen und Daten verbirgt, ist oftmals viel leichter, wenn man diese grafisch darstellt, zum Beispiel in Form von Diagrammen (Charts). Das JavaFX SDK beinhaltet dafür ein neues Paket javafx.scene.chart, mit dem wir uns in diesem Kapitel beschäftigen werden.
Ralph Steyer
Kapitel 12. Spezialitäten
Fortgeschrittene Techniken
Zusammenfassung
Eine ganz wichtige Struktur in Java ist eine dynamische Datenstruktur. Auch in JavaFX kommen diese oft zum Einsatz. JavaFX erweitert die traditionelle Java-Grundlage insbesondere in Hinsicht auf den einfachen Umgang mit Elementen der GUI. Das werden wir uns in diesem Kapitel ansehen. Ebenso widmen wir uns den Besonderheiten bei JavaFX im Zusammenhang mit Multithreading. Hier wird ein Konzept bereitgestellt, wie man es derzeit analog im Web etabliert. Schließlich wollen wir noch einen Blick auf dem Umgang mit Drag & Drop unter JavaFX werfen.
Ralph Steyer
Kapitel 13. OOP- und Java-Crashkurs
Zusammenfassung
Für die effektive Arbeit mit JavaFX benötigt man einige grundlegende Java-Kenntnisse und Wissen rund um die objektorientierte Programmierung. Dabei werden keine Experten-, aber zumindest Grundlagenkenntnisse benötigt. Zwar kann man in JavaFX mit FXML und dem Scene Builder den Kontakt mit Java ganz oder zumindest fast ganz vermeiden, was in den entsprechenden Kapiteln im Buch ja auch zu erkennen ist, aber JavaFX ist voll in die Java-Plattform integriert. Sie verzichten auf viele Möglichkeiten, wenn Sie eben diesen Java-Anteil nicht nutzen. Deshalb sollen Ihnen hier in einem kompakten Crashkurs die Grundlagen von Java und ebenso der objektorientierten Programmierung (OOP) gezeigt werden. Dieser Crashkurs kann jedoch kein vollständiges Java-Buch beziehungsweise keine vollständige Einführung in Java und OOP ersetzen, wird Ihnen aber meines Erachtens beim Verständnis der Java-Passagen im Buch sehr hilfreich sein und diverse Schritte klar machen, die wir bei JavaFX durchgeführt haben.
Für die effektive Arbeit mit JavaFX benötigt man einige grundlegende Java-Kenntnisse und Wissen rund um die objektorientierte Programmierung. Dabei werden keine Experten-, aber zumindest Grundlagenkenntnisse benötigt. Zwar kann man in JavaFX mit FXML und dem Scene Builder den Kontakt mit Java ganz oder zumindest fast ganz vermeiden, was in den entsprechenden Kapiteln im Buch ja auch zu erkennen ist, aber JavaFX ist voll in die Java-Plattform integriert. Sie verzichten auf viele Möglichkeiten, wenn Sie eben diesen Java-Anteil nicht nutzen. Deshalb sollen Ihnen hier in einem kompakten Crashkurs die Grundlagen von Java und ebenso der objektorientierten Programmierung (OOP) gezeigt werden. Dieser Crashkurs kann jedoch kein vollständiges Java-Buch beziehungsweise keine vollständige Einführung in Java und OOP ersetzen, wird Ihnen aber meines Erachtens beim Verständnis der Java-Passagen im Buch sehr hilfreich sein und diverse Schritte klar machen, die wir bei JavaFX durchgeführt haben.
Ralph Steyer
Backmatter
Metadaten
Titel
Einführung in JavaFX/OpenJFX
verfasst von
Ralph Steyer
Copyright-Jahr
2022
Electronic ISBN
978-3-658-35539-5
Print ISBN
978-3-658-35538-8
DOI
https://doi.org/10.1007/978-3-658-35539-5