13.17 Spinner Control
Dans cette vidéo, nous explorons le contrôle Spinner en JavaFX. Le Spinner est similaire à une ComboBox : il permet à l'utilisateur de choisir parmi un ensemble de valeurs. Mais contrairement à la ComboBox, le Spinner n'affiche pas de liste déroulante — il ne montre que la valeur actuelle. On le préfère à la ComboBox quand l'ensemble des valeurs possibles peut être très grand.
Mise en place et configuration
La déclaration est simple : on ajoute un Spinner dans une grille en précisant rowIndex = 2 et columnIndex = 4. Comme avec le Slider, on peut définir une plage min/max, par exemple min = 0 et max = 100. Au lancement, on obtient un Spinner permettant de naviguer précisément dans cette plage — ce que ne permet pas vraiment un Slider, où il devient difficile de pointer une valeur exacte comme 92.
Par défaut, l'utilisateur ne peut pas saisir directement un nombre dans le Spinner — il navigue avec les flèches. Pour autoriser la saisie au clavier, on passe la propriété editable à true :
Spinner<Integer> spinner = new Spinner<>(0, 100, 50);
spinner.setEditable(true);
Désormais on peut taper directement un chiffre. Si l'utilisateur saisit une valeur au-delà du maximum (par exemple 250), le Spinner la borne automatiquement à 100. Pratique pour rester dans la plage autorisée sans avoir à coder soi-même la validation.
Dernier réglage utile : la valeur initiale. Si on définit une plage 0–100, on peut vouloir que le Spinner démarre à 50 (à mi-chemin). Cela se fait via initialValue = 50 dans le constructeur ou la fabrique appropriée. Au lancement, le Spinner s'affiche bien avec 50 comme valeur par défaut. C'est tout pour le Spinner. Dans la prochaine vidéo, nous découvrirons le ColorPicker, le sélecteur de couleur. À bientôt.
En résumé
Le Spinner est un contrôle de saisie qui ressemble à ComboBox, permettant aux utilisateurs de choisir parmi un ensemble de valeurs. Contrairement à ComboBox qui affiche une liste déroulante, le Spinner n'affiche que la valeur actuelle, ce qui le rend idéal quand l'ensemble de valeurs peut être très grand. Il offre une meilleure précision que le slider en permettant de définir une plage minimale et maximale, et il peut être rendu éditable pour saisir directement des valeurs numériques.
Points clés
- Le Spinner est similaire à ComboBox mais sans liste déroulante, affichant uniquement la valeur courante
- On peut définir une portée avec les propriétés min et max (ex: min=0, max=100)
- La propriété 'editable' permet de taper des nombres directement dans le Spinner
- Il offre bien plus de précision qu'un slider, idéal pour saisir des valeurs exactes
- La propriété 'initialValue' permet de définir une valeur par défaut (ex: initialValue=50)
- Le Spinner respecte les limites définies et refuse les valeurs au-delà du maximum
Questions fréquentes
Quelle est la différence entre un Spinner et un ComboBox ?
Le Spinner est similaire à ComboBox car il permet de choisir dans un ensemble de valeurs. Cependant, contrairement à ComboBox qui affiche une liste déroulante, le Spinner n'affiche que la valeur actuelle. Il est particulièrement utile quand l'ensemble de valeurs peut être très grand.
Comment rendre un Spinner éditable pour taper directement des nombres ?
Il faut définir la propriété 'editable' égale à vrai (True). Une fois cette propriété activée, vous pouvez taper directement des nombres dans le Spinner.
Comment définir une valeur initiale dans un Spinner ?
Utilisez la propriété 'initialValue' pour définir une valeur par défaut. Par exemple, si vous avez une plage de 0 à 100, vous pouvez définir initialValue=50 pour que le Spinner commence avec la valeur 50.