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 interface graphique similaire à la ComboBox, permettant aux utilisateurs de sélectionner et d'entrer des valeurs dans une plage définie (minimum/maximum). Contrairement au Slider, le Spinner offre une précision exacte pour saisir des valeurs spécifiques, idéal quand la liste de valeurs possibles est très grande. Il peut être rendu éditable pour permettre la saisie directe de nombres, et supporte une valeur initiale par défaut.
Points clés
- Le Spinner n'affiche que la valeur actuelle, sans liste déroulante contrairement à ComboBox
- Propriétés essentielles : min/max pour définir la plage, editable pour autoriser la saisie directe, initialValue pour la valeur par défaut
- Offre une meilleure précision qu'un Slider quand des valeurs exactes sont requises (ex: saisir 92 au lieu de simplement glisser)
- Les valeurs saisies au-delà du maximum sont automatiquement limitées à la valeur maximale définie
- Idéal pour les interfaces nécessitant des entrées numériques précises dans une plage restreinte
Questions fréquentes
Quelle est la différence entre Spinner et ComboBox ?
Le Spinner n'affiche que la valeur actuelle sans liste déroulante, tandis que ComboBox affiche une liste déroulante. Le Spinner est préféré quand l'ensemble de valeurs peut être très grande.
Comment rendre un Spinner éditable pour taper directement des valeurs ?
Il faut définir la propriété 'editable' à true. Cela permet à l'utilisateur de taper des nombres directement dans le champ.
Pourquoi utiliser un Spinner plutôt qu'un Slider ?
Le Spinner offre une précision exacte pour saisir des valeurs spécifiques (comme 92), tandis que le Slider ne permet qu'un positionnement approximatif sur la plage définie.