JavaFX - Architektur
JavaFX bietet eine vollständige API mit einer Vielzahl von Klassen und Schnittstellen zum Erstellen von GUI-Anwendungen mit umfangreichen Grafiken. Die wichtigen Pakete dieser API sind -
javafx.animation - Enthält Klassen zum Hinzufügen von übergangsbasierten Animationen wie Füllen, Überblenden, Drehen, Skalieren und Übersetzen zu den JavaFX-Knoten.
javafx.application - Enthält eine Reihe von Klassen, die für den Lebenszyklus der JavaFX-Anwendung verantwortlich sind.
javafx.css - Enthält Klassen zum Hinzufügen von CSS-ähnlichem Stil zu JavaFX-GUI-Anwendungen.
javafx.event - Enthält Klassen und Schnittstellen zur Bereitstellung und Verarbeitung von JavaFX-Ereignissen.
javafx.geometry - Enthält Klassen zum Definieren von 2D-Objekten und zum Ausführen von Operationen an diesen.
javafx.stage - Dieses Paket enthält die Containerklassen der obersten Ebene für JavaFX-Anwendungen.
javafx.scene- Dieses Paket enthält Klassen und Schnittstellen zur Unterstützung des Szenendiagramms. Darüber hinaus bietet es Unterpakete wie Canvas, Diagramm, Steuerung, Effekt, Bild, Eingabe, Layout, Medien, Farbe, Form, Text, Transformation, Web usw. Es gibt mehrere Komponenten, die diese umfangreiche API von JavaFX unterstützen .
Die folgende Abbildung zeigt die Architektur der JavaFX-API. Hier sehen Sie die Komponenten, die die JavaFX-API unterstützen.
Szenendiagramm
In JavaFX wurden die GUI-Anwendungen mithilfe eines Szenendiagramms codiert. Ein Szenendiagramm ist der Ausgangspunkt für die Erstellung der GUI-Anwendung. Es enthält die (GUI-) Anwendungsprimitive, die als Knoten bezeichnet werden.
Ein Knoten ist ein visuelles / grafisches Objekt und kann Folgendes enthalten:
Geometrical (Graphical) objects - (2D und 3D) wie Kreis, Rechteck, Polygon usw.
UI controls - wie Schaltfläche, Kontrollkästchen, Auswahlfeld, Textbereich usw.
Containers - (Layoutfenster) wie Randfenster, Gitterfenster, Durchflussfenster usw.
Media elements - wie Audio-, Video- und Bildobjekte.
Im Allgemeinen erstellt eine Sammlung von Knoten ein Szenendiagramm. Alle diese Knoten sind in einer hierarchischen Reihenfolge angeordnet, wie unten gezeigt.
Jeder Knoten im Szenendiagramm hat ein einzelnes übergeordnetes Element, und der Knoten, der keine übergeordneten Elemente enthält, wird als Knoten bezeichnet root node.
Auf die gleiche Weise hat jeder Knoten ein oder mehrere untergeordnete Knoten, und der Knoten ohne untergeordnete Knoten wird als bezeichnet leaf node;; Ein Knoten mit untergeordneten Knoten wird als bezeichnetbranch node.
Eine Knoteninstanz kann nur einmal zu einem Szenendiagramm hinzugefügt werden. Die Knoten eines Szenendiagramms können Effekte, Deckkraft, Transformationen, Ereignishandler, Ereignishandler und anwendungsspezifische Zustände aufweisen.
Prisma
Prisma ist ein high performance hardware–accelerated graphical pipelineDas wird verwendet, um die Grafiken in JavaFX zu rendern. Es kann sowohl 2D- als auch 3D-Grafiken rendern.
Zum Rendern von Grafiken verwendet ein Prisma -
- DirectX 9 unter Windows XP und Vista.
- DirectX 11 unter Windows 7.
- OpenGL unter Mac und Linux, Embedded Systems.
Falls die Hardwareunterstützung für Grafiken auf dem System nicht ausreicht, verwendet Prism den Software-Renderpfad, um die Grafiken zu verarbeiten.
Bei Verwendung mit einer unterstützten Grafikkarte oder GPU bietet es flüssigere Grafiken. Nur für den Fall, dass das System keine Grafikkarte unterstützt, verwendet Prism standardmäßig den Software-Rendering-Stack (einer der beiden oben genannten).
GWT (Glass Windowing Toolkit)
Wie der Name schon sagt, bietet GWT Dienste zum Verwalten von Windows, Timern, Oberflächen und Ereigniswarteschlangen. GWT verbindet die JavaFX-Plattform mit dem nativen Betriebssystem.
Quantum Toolkit
Es ist eine Abstraktion über die untergeordneten Komponenten von Prisma, Glass, Media Engine und Web Engine. Es verbindet Prism und GWT miteinander und stellt sie JavaFX zur Verfügung.
WebView
Mit JavaFX können Sie auch HTML-Inhalte in ein Szenendiagramm einbetten. WebView ist die Komponente von JavaFX, mit der dieser Inhalt verarbeitet wird. Es verwendet eine Technologie namensWeb KitDies ist eine interne Open-Source-Webbrowser-Engine. Diese Komponente unterstützt verschiedene Webtechnologien wie HTML5, CSS, JavaScript, DOM und SVG.
Mit WebView können Sie -
- Rendern Sie HTML-Inhalte von einer lokalen oder Remote-URL.
- Unterstützen Sie den Verlauf und bieten Sie die Navigation vor und zurück.
- Laden Sie den Inhalt neu.
- Wenden Sie Effekte auf die Webkomponente an.
- Bearbeiten Sie den HTML-Inhalt.
- Führen Sie JavaScript-Befehle aus.
- Ereignisse behandeln.
Im Allgemeinen können Sie mit WebView Webinhalte von Java aus steuern.
Media Engine
Das JavaFX media engine basiert auf einer Open-Source-Engine namens a Streamer. Diese Media Engine unterstützt die Wiedergabe von Video- und Audioinhalten.
Die JavaFX Media Engine bietet Unterstützung für Audio für die folgenden Dateiformate:
Audio |
|
---|---|
Video |
|
Das Paket javafx.scene.mediaenthält die Klassen und Schnittstellen zur Bereitstellung von Medienfunktionen in JavaFX. Es wird in Form von drei Komponenten bereitgestellt, die -
Media Object - Dies ist eine Mediendatei
Media Player - Zum Abspielen von Medieninhalten.
Media View - Zum Anzeigen von Medien.