samedi 2 mai 2009

Introduction à JavaFX (3)

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.

Aucun commentaire: