Désolé, en ce moment je m'intéresse à JavaFX et après une longue période d'inactivité sur ce blog qui faisait elle-même suite à une période d'activité très modérée, je publie coup sur coup plusieurs vidéos de Sun sur JavaFX... Je trouve que cette technologie est vraiment devenue intéressante et qu'elle mérite qu'on y jette un oeil, voire plus si affinité. Sun a quand même mi presque 2 ans à proposer quelque chose qui tienne la route face à Flex ou à Silverlight mais là la technologie commence à être mature et utilisable. L'intérêt est quand même de rester sur une plateforme Java.
Cette vidéo n'est pas vraiment une introduction. C'est plutôt une vidéo de présentation du concept de "Scene Graph", élément essentiel de JavaFX. La vidéo est courte et complète bien les 2 vidéos d'introduction de Sun publiées dans mes 2 derniers billets sur JavaFX.
La présentation dure environ 6 minutes, dont seule les 5 premières minutes ont réellement un intérêt pédagogique (c'est de bonne guerre, la fin de la présentation donne des informations sur le site
www.javafx.com, et comment retrouver les informations et exemples dont il est question dans la présentation).
Cette courte vidéo présente les classes et concepts fondamentaux pour réaliser des applications graphiques avec JavaFX (ce qui est il faut bien l'avouer la raison pour laquelle en général on se penche sur JavaFX :-P).
La classe
Stage représente le conteneur de haut-niveau (
top-level container) qui correspond à une fenêtre classique par défaut mais peut être transparente ou sans la bordure et les autres "
décorations" associées.
Un objet
Stage contient un attribut
scene de classe
Scene. La classe
Scene correspond à une surface de dessin pour y placer le contenu graphique. Un objet Scene a un attribut content qui est une séquence d'élément dans le
Graph Scene (La traduction en graphe de la scène ne me plait guère est à défaut d'une qui me satisfasse, je préfère utiliser le terme anglais).
Le
Graph Scene est un concept important de JavaFX : le contenu graphique est considéré comme un graphe d'éléments. Attention, il s'agit bien d'un graphe et non d'un arbre, il n'y a donc pas d'élément racine. C'est pour cela que l'on a une séquence d'éléments, pouvant eux-mêmes être constitués de séquence d'éléments.
Ces éléments graphiques peuvent être des classes
Node,
Group ou
CustomNode.
Un
Node est une feuille du graphe, c'est-à-dire qu'il ne peut pas avoir de noeud graphique fils. Par contre, tout comme les 2 autres classes, un objet
Node peut avoir 0 ou 1 parent.
Les formes (
Shape) et les éléments d'interface venant de Swing (slider, label, etc.) sont par exemple des
Node.
Un
Group est un regroupement de plusieurs
Node,
Group ou
CustomNode. Un
Group peut ainsi permettre de créer des formes complexes en regroupant plusieurs formes. De plus un objet
Group permet d'appliquer un même effet à tous les élément du groupe en question. Ainsi un objet
Group permet de manipuler un ensemble d'éléments graphiques comme un élément unique.
Enfin, la classe
CustomNode est une classe abstraite que l'on sous-classe et dont on redéfinit (utilisation du mot clé
override) la fonction
create() qui définit le contenu de cet élément.