Page 1 sur 11
Projet MVC-CD
Initiation à JavaFX 2.0
Créé par M. Jaouadi, le 25 mars 2015
Modifié par M. Jaouadi, le 30 mars 2015
Page 2 sur 11
Table des matières
1 Préambule ....................................................................................................................................... 3
2 JavaFX .............................................................................................................................................. 3
3 Architecture de JavaFX .................................................................................................................... 3
4 Structure d’une application en JavaFX ............................................................................................ 4
4.1 Graphe de scène ...................................................................................................................... 4
4.2 Exemple : ................................................................................................................................. 6
5 Les composants standards (Controls) : ........................................................................................... 7
6 Les conteneurs (Layout-Pane) : ....................................................................................................... 8
7 Migration Swing JavaFX : ............................................................................................................ 9
8 La séparation des préoccupations: ................................................................................................ 10
9 Référence externe au projet ......................................................................................................... 11
Page 3 sur 11
1 Préambule
Ce document expose d’abord une initiation théorique à JavaFX une technologie considérée comme
étant l’avenir pour le développement d'interfaces graphiques en Java.
Notre choix s’est fixé sur cette technologie afin d’améliorer la réactivité de nos IHM, et favoriser la
séparation MVC. De plus, la communauté java SE s’oriente vers considérer JavaFX le successeur de
Swing pour sa librairie d’interface utilisateur (Client UI library). Ceci a été clairement déclaré dans la
documentation d’Oracle [Oracle-01].
Dans cette perspective et afin de maintenir le cycle de vie du plugin et assurer la prospérité de tout le
projet, une migration de l’environnement Swing vers JavaFX est pertinente.
2 JavaFX
Le JavaFX est un langage de programmation orienté interface graphique. Cette technologie est en
faveur des applications internet riches qui se comportent sur des multiples plateformes.
JavaFX évolue vers le multimédia à travers le traitement des images, la création de media player, et
l’intégration audio et vidéo. Ces applications ont l’avantage d’être exécuté sur le web, sur le bureau,
(Desktop) ainsi que sur mobile, et même sur télévision.
La nouvelle version JavaFX 2 .0 donne la possibilité de développer en deux modes :
- Mode procédural : à travers les classes java.
- Mode déclaratif : en utilisant la syntaxe XML.
3 Architecture de JavaFX
L'architecture technique de JavaFX est composée de plusieurs couches qui reposent sur la machine
virtuelle Java (JVM). Seulement la couche API est publique, les autres peuvent subir des changements
au fil des versions. Ceci permet d’éviter tout problème de compatibilité. [IHM-01]
Quantum Toolkit : permet de lier le « Prism » et la boîte à outils de fenêtrage « Glass » ensemble et
les rendre accessibles à la couche JavaFX. Elle gère également les règles relatives aux Threading et à la
manipulation des événements.
Figure 1 Diagramme d’architecture de JavaFX [Oracle-02]
Page 4 sur 11
Prism : pipeline graphique permet d’effectuer la rastérisation et le rendu (rendering) des scènes
JavaFX.
Glass Windowing Toolkit : est responsable de fournir des services d'exploitation natifs, tels que la
gestion des fenêtres, des minuteries et des surfaces.
4 Structure d’une application en JavaFX
La structure des composants dans une application JavaFX est basée sur la métaphore du théâtre. Le
conteneur de niveau le plus élevé est le stage, à l’intérieur du stage se trouve la scène, cette scène
contient le graphe de scène, c’est-à-dire la structure hiérarchique des éléments graphiques dans
l’interface.
Toutes classes créées doivent hériter de la
classe mère Application :
Public class Main extends Application
Stage est la fenêtre principale
indispensable pour l’affichage. C’est
l’équivalent de java.awt.Frame en Java.
primaryStage.show() ; //afficher la fenêtre
principale.
Scene contient tous les éléments de notre
interface graphique. Elle compose une
page dans l’application.
Scene scene=new Scene(root,500,400);
Une Scène est associée par la suite à la
fenêtre principale Stage :
primaryStage.setScene(scene);
Nodes : ce sont les éléments visuels de la
scène : les containers et les composants
de JavaFX.
4.1 Graphe de scène
Le graphe de scène contient tous les éléments qui composent une interface utilisateur, des groupes,
des dispositions, des contrôles et des formes. Ces objets sont des nœuds qui héritent de la classe mère
Node. Cette classe comporte de nombreuses sous-classes. Les feuilles de l'arbre sont généralement
constitués de composants visibles (boutons, champs texte…) et les nœuds intermédiaires (y compris la
racine) sont généralement des éléments de structuration (souvent invisibles), typiquement des
conteneurs ou panneaux de différents types (HBox, VBox, BorderPane,…). La famille des nœuds dans
une scène est présentée dans la figure ci-dessous :
Stage
Scene
Container
+ layout
Compenents
Controls
Compenents
Controls
Container
+ layout
Compenents
Controls
...
Page 5 sur 11
javaFX.scene.node
Prarent
Control
ChoiceBox
ComboBoxBare
ColorPicker
Combobox
Labeled
ButtonBase
Button
CheckBox
Hyperlink
MenuButton
ToggleButton
Cell
Label
TitledPane
ListView
MenuBar
Slider
TabPane
TextInputControl
ToolBar
TreeView
Group
Region Axis
Chart
Pane
AnchorPane
BorderPane
FlowPane
GridPane
HBox
StackPane
TilePane
VBox
WebView
Shape
Arc
Cercle
Line
Polygon
Rectangle
Text
Canvas
ImageView
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !