I Introduction à JavaFX JavaFX est une technologie créée par Sun Microsystems q
I Introduction à JavaFX JavaFX est une technologie créée par Sun Microsystems qui appartient désormais à Oracle. Avec l'apparition de Java 8 en mars 2014, JavaFX devient la bibliothèque de création d'interface graphique officielle du langage Java, pour toutes les sortes d'application (applications mobiles, applications sur poste de travail, applications Web), le développement de son prédécesseur Swing étant abandonné (sauf pour les corrections de bogues). JavaFX contient des outils très divers, notamment pour les médias audio et vidéo, le graphisme 2D et 3D, la programmation Web, la programmation multi-fils etc. I II. Utilisation de la bibliothèque JavaFX. JavaFX exécute dans l'ordre, chaque fois qu'une application est lancée, les actions suivantes : • Construit une instance de la classe Application spécifiée • Appelle la méthode init () • Appelle la méthode start (javafx.stage.Stage) • Attend l'achèvement de l'application, • Appelle la méthode stop () Notez que la méthode de démarrage (start) est abstraite et doit être surchargée. Les méthodes d'initialisation (init) et d'arrêt (stop) ont des implémentations concrètes qui ne font rien. L’exécution du code suivant montre que l’exécution de la méthode init n’est pas faite par le même fil d’exécution (thread) que l’appel au constructeur par défaut et l’exécution de la méthode start. III. Panneaux et composants de base. 1. Gestionnaire de la mise en page (Layout) Un layout ou gestionnaire de mise en page est un noeud graphique qui hérite de la classe javafx.scene.layout.Pane. Il s'agit d'une entité qui contient d'autres noeuds et qui est chargée de les déplacer, de les disposer, voire de les redimensionner de manière à changer la présentation de cet ensemble de noeuds et à les rendre utilisables dans une interface graphique. Un gestionnaire est un noeud graphique et peut donc être positionné et manipulé, ou subir des transformations et effets comme n'importe quel autre noeud de SceneGraph. Les différences importantes entre Panel (panneau) et Group (groupe) sont : • Un panneau peut avoir sa propre taille et être redimensionnable, par contre un groupe prend les limites collectives de ses enfants et n'est pas directement redimensionnable. • Le panneau doit être utilisé lorsque vous souhaitez positionner ses noeuds en position absolue. Un layout (organisation) est une classe de l’API Graphique permettant d’organiser les objets graphiques dans la fenêtre. En JavaFX, il existe huit types de layouts : 1. Le BorderPane qui vous permet de diviser une zone graphique en cinq parties : top, down, right, left et center. 2. La Hbox qui vous permet d'aligner horizontalement vos éléments graphiques. 3. La VBox qui vous permet d'aligner verticalement vos éléments graphiques. 4. Le StackPane qui vous permet de ranger vos éléments de façon à ce que chaque nouvel élément inséré apparaisse au-dessus de tous les autres. 5. Le GridPane permet de créer une grille d'éléments organisés en lignes et en colonnes 6. Le FlowPane permet de ranger des éléments de façon à ce qu'ils se positionnent automatiquement en fonction de leur taille et de celle du layout. 7. Le TilePane est similaire au FlowPane, chacune de ses cellules fait la même taille. 8. L'AnchorPane permet de fixer un élément graphique par rapport à un des bords de la fenêtre : top, bottom, right et left. IV. Utilisation d'un éditeur graphique (JavaFX Scene Builder). 1. Configuration d’Eclipse Nous devons paramétrer Eclipse pour qu’il utilise le JDK 8 et qu’il sache où trouver le Scene Builder : • • Ouvrez les préférences et sélectionnez la partie Java | Installed JREs. • • Cliquez sur le bouton Add… pour ajoutez le JDK 8 puis sur Standard VM et sélectionnez le dossier contenant le JDK 8. • • Supprimez les autres JREs et JDKs afin que le JDK 8 devienne le JDK par défaut (default) ! • • Sélectionnez la partie Java | Compiler. Définissez la Compiler compliance level à 1.8 ! • • Sélectionnez la partie JavaFX puis spécifiez le chemin de votre exécutable Scene Builder ! • 2. Utilisation de scene builder Créer une classe vue de fichier fxml sur Eclipse par file new other new FXML document. Après, ouvrez ce fichier en faisant un clic droit sur ce dernier et choisir open with scene builder. Dès lors, vous avez l’interface de scene builder qu’on apprendra à utiliser en TP. I V. Les évènements II 1. Notion d’évènement Dans les applications JavaFX, les événements signifient que quelque chose s'est produit : un utilisateur a cliqué sur un bouton, appuie sur une touche, déplace une souris ou effectue d'autres actions, … Dans JavaFX, un événement est une instance de la classe javafx.event.Event ou de toute sous-classe d'Event. JavaFX fournit plusieurs sous-classe d'Event, notamment DragEvent, KeyEvent, MouseEvent, ScrollEvent et d'autres. Vous pouvez définir votre propre sous-classe d'Event en étendant la classe Event. Chaque événement inclut les informations suivantes : Event Type, Source and Target. La hiérarchie des évènements : Le type d'événement de niveau supérieur dans la hiérarchie est Event.ROOT, qui est équivalent à Event.ANY. Dans les sous-types, le type d'événement ANY est utilisé pour désigner n'importe quel type d'événement dans la classe d'événements. Par exemple, pour fournir la même réponse à n'importe quel type d'événement de type « touche », utilisez KeyEvent.ANY comme type d'événement pour le filtre d'événements ou le gestionnaire d'événements. Pour répondre uniquement lorsque la touche est libérée, utilisez le type d'événement KeyEvent.KEY_RELEASED pour le filtre ou le gestionnaire. Les gestionnaires d'événements (EventHandler) vous permettent de gérer les événements. 2. Enregistrement d'un gestionnaire d'événements Pour enregistrer un gestionnaire, utilisez la méthode addEventHandler de la classe javafx.scene.Node. Cette méthode prend le type d'événement et le gestionnaire comme arguments : objet.setOnMouseClicked(new EventHandler<MouseEvent>(){ public void handle(MouseEvent me){ //instructions à exécuter lors de cet événement } }); 3. Propagation des événements On distingue 3 phases : Target selection Event capturing phase Event bubbling phase VI. Liaison de données JavaFx propose un mécanisme de binding qui permet de lier des données entre elles. Ces données doivent être encapsulées dans une Property La modification d’une Property entraîne la modification des Property qui lui sont associées. Les attributs des composants JavaFX sont en général des Property. VII. Property Interface spécifiant le mécanisme nécessaire pour écouter les changements de valeur d’une donnée Chaque déclinaison encapsule une donnée d’un type particulier : • • SimpleBooleanProperty pour observer un booléen • • SimpleIntegerProperty pour observer un entier • • SimpleDoubleProperty pour observer un flottant double Etc. On peut accéder ou modifier la valeur encapsulée dans une Property grâce à ses méthodes get() et set(…) …mais il vaut mieux réserver ces dernières à un usage interne à la classe où la Property est définie (ce n’est pas un attribut de classe). La Property sera donc plutôt stockée comme un attribut privé de la classe. uploads/Management/ introduction-a-javaf1.pdf
Documents similaires
-
12
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 11, 2022
- Catégorie Management
- Langue French
- Taille du fichier 0.1029MB