JavaFX - Architecture

JavaFX fournit une API complète avec un ensemble riche de classes et d'interfaces pour créer des applications GUI avec des graphiques riches. Les packages importants de cette API sont -

  • javafx.animation - Contient des classes pour ajouter des animations basées sur la transition, telles que le remplissage, le fondu, la rotation, l'échelle et la traduction, aux nœuds JavaFX.

  • javafx.application - Contient un ensemble de classes responsables du cycle de vie de l'application JavaFX.

  • javafx.css - Contient des classes pour ajouter un style de type CSS aux applications JavaFX GUI.

  • javafx.event - Contient des classes et des interfaces pour fournir et gérer les événements JavaFX.

  • javafx.geometry - Contient des classes pour définir des objets 2D et effectuer des opérations sur eux.

  • javafx.stage - Ce package contient les classes de conteneur de niveau supérieur pour l'application JavaFX.

  • javafx.scene- Ce package fournit des classes et des interfaces pour prendre en charge le graphe de scène. En outre, il fournit également des sous-packages tels que canvas, chart, control, effect, image, input, layout, media, paint, shape, text, transform, web, etc. Il existe plusieurs composants qui prennent en charge cette riche API de JavaFX .

L'illustration suivante montre l'architecture de l'API JavaFX. Ici vous pouvez voir les composants qui prennent en charge l'API JavaFX.

Graphique de la scène

Dans JavaFX, les applications GUI étaient codées à l'aide d'un graphe de scène. Un graphique de scène est le point de départ de la construction de l'application GUI. Il contient les primitives d'application (GUI) appelées nœuds.

Un nœud est un objet visuel / graphique et il peut inclure -

  • Geometrical (Graphical) objects - (2D et 3D) tels que cercle, rectangle, polygone, etc.

  • UI controls - comme le bouton, la case à cocher, la boîte de choix, la zone de texte, etc.

  • Containers - (volets de disposition) tels que le volet de bordure, le volet de grille, le volet de flux, etc.

  • Media elements - tels que les objets audio, vidéo et image.

En général, une collection de nœuds crée un graphe de scène. Tous ces nœuds sont organisés dans un ordre hiérarchique comme indiqué ci-dessous.

Chaque nœud du graphe de scène a un seul parent, et le nœud qui ne contient aucun parent est appelé root node.

De la même manière, chaque nœud a un ou plusieurs enfants, et le nœud sans enfants est appelé leaf node; un nœud avec des enfants est appelébranch node.

Une instance de nœud ne peut être ajoutée à un graphique de scène qu'une seule fois. Les nœuds d'un graphe de scène peuvent avoir des effets, une opacité, des transformations, des gestionnaires d'événements, des gestionnaires d'événements, des états spécifiques à l'application.

Prisme

Prism est un high performance hardware–accelerated graphical pipelinequi est utilisé pour rendre les graphiques dans JavaFX. Il peut rendre des graphiques 2D et 3D.

Pour rendre des graphiques, un prisme utilise -

  • DirectX 9 sous Windows XP et Vista.
  • DirectX 11 sous Windows 7.
  • OpenGL sur Mac et Linux, systèmes embarqués.

Si la prise en charge matérielle des graphiques sur le système n'est pas suffisante, Prism utilise le chemin de rendu du logiciel pour traiter les graphiques.

Lorsqu'il est utilisé avec une carte graphique ou un GPU pris en charge, il offre des graphiques plus fluides. Juste au cas où le système ne prend pas en charge une carte graphique, Prism utilise par défaut la pile de rendu logiciel (l'une des deux ci-dessus).

GWT (Boîte à outils de fenêtrage de verre)

Comme son nom l'indique, GWT fournit des services pour gérer Windows, les minuteries, les surfaces et les files d'attente d'événements. GWT connecte la plate-forme JavaFX au système d'exploitation natif.

Boîte à outils Quantum

Il s'agit d'une abstraction sur les composants de bas niveau de Prism, Glass, Media Engine et Web Engine. Il relie Prism et GWT ensemble et les rend disponibles pour JavaFX.

WebView

À l'aide de JavaFX, vous pouvez également incorporer du contenu HTML dans un graphique de scène. WebView est le composant de JavaFX qui est utilisé pour traiter ce contenu. Il utilise une technologie appeléeWeb Kit, qui est un moteur de navigateur Web open source interne. Ce composant prend en charge différentes technologies Web telles que HTML5, CSS, JavaScript, DOM et SVG.

En utilisant WebView, vous pouvez -

  • Rendre le contenu HTML à partir d'une URL locale ou distante.
  • Soutenez l'historique et fournissez la navigation précédente et suivante.
  • Rechargez le contenu.
  • Appliquez des effets au composant Web.
  • Modifiez le contenu HTML.
  • Exécutez des commandes JavaScript.
  • Gérez les événements.

En général, à l'aide de WebView, vous pouvez contrôler le contenu Web à partir de Java.

Moteur multimédia

le JavaFX media engine est basé sur un moteur open-source appelé Streamer. Ce moteur multimédia prend en charge la lecture de contenu vidéo et audio.

Le moteur multimédia JavaFX prend en charge l'audio pour les formats de fichier suivants:

Audio
  • MP3
  • WAV
  • AIFF
Video
  • FLV

Le paquet javafx.scene.mediacontient les classes et les interfaces pour fournir des fonctionnalités multimédias dans JavaFX. Il se présente sous la forme de trois composants, qui sont -

  • Media Object - Cela représente un fichier multimédia

  • Media Player - Pour lire du contenu multimédia.

  • Media View - Pour afficher les médias.