Contrôles JavaFX et ComboBox

La classe ComboBox crée un contrôle qui permet à l'utilisateur de sélectionner une option dans une liste déroulante d'options. La liste déroulante apparaît lorsque l'utilisateur clique sur le contrôle ComboBox. Lorsque le nombre d'options dépasse la taille de la fenêtre déroulante, l'utilisateur peut faire défiler vers le bas pour d'autres options. Cela diffère du ChoiceBox qui est principalement utilisé lorsque le nombre de choix est un ensemble relativement petit.

Déclaration d'importation

javafx.scene.control. Boîte combo

Constructeurs

La classe ComboBox a deux constructeurs selon que vous souhaitez créer un objet ComboBox vide ou un objet rempli d'éléments.

Pour créer un ComboBox vide

Fruit ComboBox = nouveau ComboBox ();

Pour créer un objet ComboBox et le remplir avec des éléments String à partir d'une ObservableList

ObservableList fruits = FXCollections.observableArrayList ( 
"Pomme", "Banane", "Poire", "Fraise", "Pêche", "Orange", "Prune");
ComboBox fruit = nouveau ComboBox (fruits);

Méthodes utiles

instagram viewer

Si vous créez un objet ComboBox vide, vous pouvez utiliser la méthode setItems. Passer une ObservableList d'objets définira les éléments dans la Combobox.

ObservableList fruits = FXCollections.observableArrayList ( 
"Pomme", "Banane", "Poire", "Fraise", "Pêche", "Orange", "Prune");
fruit.setItems (fruits);

Si vous souhaitez ajouter des éléments à la liste ComboBox ultérieurement, vous pouvez utiliser la méthode addAll de la méthode getItems. Cela ajoutera les éléments à la fin de la liste d'options:

fruit.getItems (). addAll ("Melon", "Cherry", "Blackberry");

Pour ajouter une option à un emplacement particulier dans la liste d'options ComboBox, utilisez la méthode add de la méthode getItems. Cette méthode prend une valeur d'index et la valeur que vous souhaitez ajouter:

fruit.getItems (). add (1, "Citron");

Remarque: Les valeurs d'index du ComboBox commencent à 0. Par exemple, la valeur ci-dessus de "Citron" ci-dessus sera insérée dans la liste d'options ComboBox à la position 2 car l'index transmis est 1.

Pour présélectionner une option dans la liste d'options ComboBox, utilisez la méthode setValue:

fruit.setValue ("Cerise");

Si la valeur transmise à la méthode setValue ne figure pas dans la liste, la valeur sera toujours sélectionnée. Cependant, cela ne signifie pas que cette valeur a été ajoutée à la liste. Si l'utilisateur choisit ensuite une autre valeur, la valeur initiale ne sera plus dans la liste à sélectionner.

Pour obtenir la valeur de l'élément actuellement sélectionné dans le ComboBox, utilisez la méthode getItems:

Chaîne sélectionnée = fruit.getValue (). ToString ();

Conseils d'utilisation

Le nombre d'options normalement présentées par la liste déroulante ComboBox est de dix (sauf s'il y a moins de dix éléments, auquel cas il correspond par défaut au nombre d'éléments). Ce nombre peut être modifié à l'aide de la méthode setVisibleRowCount:

fruit.setVisibleRowCount (25);

Encore une fois, si le nombre d'éléments de la liste est inférieur à la valeur définie dans la méthode setVisibleRowCount, la zone de liste déroulante affiche par défaut le nombre d'éléments dans la liste déroulante Zone de liste déroulante.

Gestion des événements

Pour suivre la sélection d'éléments sur un objet ComboBox, vous pouvez utiliser la méthode addListener du méthode selectedItemProperty du SelectionModel pour créer un ChangeListener Il récupérera les événements de changement pour le ComboBox:

final Label selectionLabel = new Label ();
fruit.getSelectionModel (). selectedItemProperty (). addListener (
new ChangeListener () {
le vide public a changé (ObservableValue ov,
String old_val, String new_val) {
selectionLabel.setText (new_val);
}
});
instagram story viewer