Cours JavaFX - Menus PDF

Summary

Ce document décrit les menus JavaFX, en expliquant les différents types de menus, leurs composants et leur utilisation. Il détaille également la manière d'intégrer les menus contextuels et autres options. Vous trouverez aussi des exemples illustrés des différents menus et composants.

Full Transcript

Interfaces graphiques avec JavaFx 12- Menus Module: Programmation Objet Avancée A.Mazoul Département Génie informatique Interfaces graphiques avec JavaFx JavaFx...

Interfaces graphiques avec JavaFx 12- Menus Module: Programmation Objet Avancée A.Mazoul Département Génie informatique Interfaces graphiques avec JavaFx JavaFx - Menus Menus Les menus sont des éléments de l'interface permettant à l'utilisateur de choisir des options qui pourront déclencher des actions et/ou changer l'état de certaines propriétés de l'application. Le principe du menu est (comme au restaurant) que l'utilisateur puisse voir et parcourir la liste des options avant de se décider. Dans les applications, les menus peuvent prendre différentes formes.  Les menu déroulants (drop-down menu)  Les menu contextuels (popup menu): clic-droit de la souris, l’affichage dépend de l'endroit où l'on a cliqué (contexte). On parle également des sous-menus qui peuvent s'ouvrir en cascade (on peut avoir plusieurs niveaux de sous-menus). Dans la librairie JavaFX, un certain nombre de composants sont dédiés aux menus et sont utilisés pour les construire :  MenuBar  CheckMenuItem  SeparatorMenuItem  Menu  RadioMenuItem  Contextmenu  MenuItem  CustomMenuItem A.Mazoul Programmation orienté objet Java 2 Interfaces graphiques avec JavaFx JavaFx - Menus Menus Les différents composants qui interviennent dans la gestion des menus déroulants sont illustrés dans l'exemple suivant : A.Mazoul Programmation orienté objet Java 3 Interfaces graphiques avec JavaFx JavaFx - Menus Menus Pour les menus contextuels, ce sont pratiquement les mêmes composants qui sont utilisés à la simple différence que : Le composant MenuBar n'est plus nécessaire. A la place, c'est le composant ContextMenu qui est utilisé pour rassembler les différentes options du menu contextuel. L'affichage du composant sera déclenché par une action de l'utilisateur (en général un clic-droit sur un conteneur ou composant). Un menu contextuel peut également contenir des sousmenus en cascade. A.Mazoul Programmation orienté objet Java 4 Interfaces graphiques avec JavaFx JavaFx - Menus Barre de menu La barre de menus, représentée par le composant MenuBar, est un conteneur permettant de rassembler les en-têtes des menus. Le composant MenuBar doit être placé dans un conteneur de l'interface (par exemple en haut d'un BorderPane). Le composant Menu représente un conteneur d'éléments de menu (options) et peut se présenter "enroulé" (en-tête) ou "déroulé" (fenêtre popup) lorsqu'on clique dessus. Le composant Menu peut être ajouté à une barre de menus (MenuBar) ou être inséré comme sous-menu dans un autre composant de type Menu. A.Mazoul Programmation orienté objet Java 5 Interfaces graphiques avec JavaFx JavaFx - Menus RadioMenuItem Le composant RadioMenuItem qui est une sous-classe de MenuItem peut également être utilisé comme option dans un menu. Il agit comme un bouton radio placé dans un menu déroulant et permet la sélection d'une option parmi plusieurs. Pour avoir ce comportement de sélection mutuellement exclusive, le composant doit être placé dans un ToggleGroup (comme c'est le cas pour le RadioButton). La propriété selected indique si l'option est sélectionnée ou non. RadioMenuItem A.Mazoul Programmation orienté objet Java 6 Interfaces graphiques avec JavaFx JavaFx - Menus Options de menu Le composant CustomMenuItem permet de traiter n'importe quel nœud (Node) d'un graphe de scène comme un élément de menu. Le composant SeparatorMenuItem (sous-classe de CustomMenuItem) permet de un séparateur permettant de séparer les différents groupes d'options par une ligne horizontale. SeparatorMenuItem A.Mazoul Programmation orienté objet Java 7 Interfaces graphiques avec JavaFx JavaFx - Menus Raccourcis clavier Il est souvent souhaitable que certaines actions que l'on peut déclencher avec la souris puissent être également déclenchées à l'aide du clavier (raccourcis clavier) qui peut prendre deux formes principales :  Les mnémoniques : Activation du composant en pressant sur une touche spécifique qui dépend de la plateforme (touche Alt sur Windows) associée à un autre caractère (généralement alphanumérique), le caractère associé au mnémonique est généralement souligné.  Les accélérateurs: Activation de l'action associée à une option de menu par une combinaison unique de touches du clavier. Accélérateur A.Mazoul Programmation orienté objet Java 8 Interfaces graphiques avec JavaFx JavaFx - Menus Raccourcis clavier: Mnémonique Des mnémoniques peuvent être associés à tous les composants possédant un libellé (sous-classes de Labeled) ainsi qu'aux menus et aux différentes options de menus. Pour ces composants, la propriété booléenne mnemonicParsing indique si le caractère souligné '_' dans le libellé du composant doit être considéré comme l'annonce d'un mnémonique pour le caractère suivant. A.Mazoul Programmation orienté objet Java 9 Interfaces graphiques avec JavaFx JavaFx - Menus MenuButton Le composant MenuButton est un bouton qui affiche un menu popup lorsqu'il est cliqué (à la manière d'un menu contextuel). La propriété popupSide permet de définir de quel côté doit s'ouvrir le menu popup. A.Mazoul Programmation orienté objet Java 10 Interfaces graphiques avec JavaFx JavaFx - Menus SplitMenuButton Le composant SplitMenuButton est une sorte de combinaison du composant Button et du composant MenuButton. La zone du bouton est divisée en 2 parties :  un bouton qui peut déclencher une action avec setOnAction(…).  Une zone de menu qui fonctionne comme le composant MenuButton. La propriété popupSide permet de définir de quel côté doit s'ouvrir le menu popup. A.Mazoul Programmation orienté objet Java 11 Interfaces graphiques avec JavaFx JavaFx - Menus ChoiceBox Le composant ChoiceBox permet de présenter à l'utilisateur une liste d'éléments dans laquelle il peut en sélectionner un. Le composant se présente au départ sous la forme d'un bouton et, lorsqu'on clique dessus, les éléments sont affichés sous la forme d'une liste déroulante. A.Mazoul Programmation orienté objet Java 12 Interfaces graphiques avec JavaFx JavaFx - Menus ChoiceBox Si l'on souhaite effectuer une action lors d'un changement de sélection, il faut enregistrer un gestionnaire d'événement sur le modèle de sélection.  Identique mais avec une expression lambda : A.Mazoul Programmation orienté objet Java 13 Interfaces graphiques avec JavaFx JavaFx - Menus ComboBox Le composant ComboBox est assez similaire au composant ChoiceBox et permet de présenter à l'utilisateur une liste d'éléments (de type T) dans laquelle il pourra en sélectionner un. Une des différences réside dans le fait que ComboBox permet de limiter le nombre de choix affichés et offre automatiquement une barre de défilement pour naviguer dans la liste. Une autre différence est qu'un ComboBox peut être éditable (l'utilisateur peut saisir une valeur qui ne figure pas dans la liste). A.Mazoul Programmation orienté objet Java 14 Interfaces graphiques avec JavaFx JavaFx - Menus ListView Le composant ListView permet d'afficher un ensemble d'éléments (de type T) sous la forme d'une liste scrollable. Les éléments de la liste peuvent être affichés verticalement (par défaut) ou horizontalement. L'utilisateur peut sélectionner les éléments (sélection simple par défaut, mais sélection multiple possible). A.Mazoul Programmation orienté objet Java 15 Interfaces graphiques avec JavaFx JavaFx - Menus Spinner Le composant Spinner permet à l'utilisateur de sélectionner une valeur dans une liste d'éléments ordonnés (de type T). Les valeurs sélectionnables sont définies dans le modèle du composant qui est de type SpinnerValueFactory qui accepte:  IntegerSpinnerValueFactory  DoubleSpinnerValueFactory  ListSpinnerValueFactory Il est possible de rendre la zone de texte éditable. A.Mazoul Programmation orienté objet Java 16 Interfaces graphiques avec JavaFx JavaFx - Menus Spinner IntegerSpinnerValueFactory(int min, int max) IntegerSpinnerValueFactory(int min, int max, int initialValue) IntegerSpinnerValueFactory(int min, int max, int initialValue, int amountToStepBy) A.Mazoul Programmation orienté objet Java 17 A.Mazoul Réseaux informatiques Téléinformatique 18

Use Quizgecko on...
Browser
Browser