le
ChoiceBoxLa classe est utilisée pour créer un contrôle qui présente à l'utilisateur quelques choix à choisir dans une liste déroulante. L'utilisateur n'est autorisé qu'à choisir l'une des options. Lorsque la liste déroulante ne s'affiche pas, l'option actuellement sélectionnée est la seule visible. Il est possible de régler
ChoiceBoxrefuser d'accepter une option nulle comme choix valide.
import javafx.scene.control.ChoiceBox;
le
ChoiceBoxLa classe a deux constructeurs, l'un pour une liste d'éléments vide et l'autre avec un ensemble d'éléments donné:
// Créer un ChoiceBox vide
ChoiceBox choix = nouveau ChoiceBox ();
// Créer un ChoiceBox en utilisant une collection de listes observables
ChoiceBox cboices = new ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
Si vous choisissez de créer un espace vide
ChoiceBoxles éléments peuvent être ajoutés ultérieurement à l'aide du
setItemsméthode:
choix.setItems (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
Et, si vous voulez savoir quels éléments se trouvent dans un
ChoiceBoxvous pouvez utiliser le
getItemsméthode:
Liste des options = choix.getItems ();
Pour choisir une option à sélectionner actuellement, utilisez
setValueet lui fournir l'une des options:
choice.setValue ("First");
Pour obtenir la valeur de l'option actuellement sélectionnée, utilisez le
getValueet l'affecter à une chaîne:
Option chaîne = choix.getValue (). ToString ();
Afin d'écouter les événements d'un
ChoiceBoxobjet, le
SelectionModelest utilisé. le
ChoiceBoxutilise le
SingleSelectionModelclasse qui ne permet de choisir qu'une seule option à la fois. le
selectedIndexPropertynous permet d'ajouter un
ChangeListener. Cela signifie que chaque fois que l'option sélectionnée passe à une autre option, l'événement de modification se produit. Comme vous pouvez le voir dans le code ci-dessous, une modification est écoutée et lorsqu'elle se produit, l'option précédemment sélectionnée et la nouvelle option sélectionnée peuvent être déterminées:
Options de la liste finale = choix.getItems ();
choice.getSelectionModel (). selectedIndexProperty (). addListener (new ChangeListener ()
@Override public void changed (ObservableValue ov, Number oldSelected, Number newSelected)
System.out.println ("Ancienne option sélectionnée:" + options.get (oldSelected.intValue ()));
System.out.println ("Nouvelle option sélectionnée:" + options.get (newSelected.intValue ()));
);
Il est également possible d'afficher ou de masquer la liste des options sans que l'utilisateur ait à cliquer sur le
ChoiceBoxobjet en utilisant le
spectacleet
cacherméthodes. Dans le code ci-dessous, un objet Button est utilisé pour appeler la méthode show d'un
ChoiceBoxobjet lorsque le
Boutonest cliqué:
// Utilisez un stackpane pour une disposition simple des contrôles
Racine StackPane = nouveau StackPane ();
// Créer un bouton pour afficher les options dans la ChoiceBox
Button showOptionButton = new Button ("Afficher les options");
root.getChildren (). add (showOptionButton);
root.setAlignment (showOptionButton, Pos.TOP_CENTER);
// Créez la ChoiceBox avec quelques options
choix final de ChoiceBox = nouveau ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
root.getChildren (). add (choix);
// Utilisez ActionEvent pour appeler la méthode show ChoiceBox
showOptionButton.setOnAction (new EventHandler ()
@Override public void handle (ActionEvent e)
choix.show ();
);
// Définissez la scène et mettez la scène en mouvement…
Scène scène = nouvelle scène (racine, 300, 250);
primaryStage.setScene (scène);
primaryStage.show ();
Pour en savoir plus sur les autres contrôles JavaFX, consultez les contrôles de l'interface utilisateur JavaFX.