De
ChoiceBoxklasse wordt gebruikt om een besturingselement te maken dat de gebruiker enkele keuzes biedt om uit een vervolgkeuzelijst te kiezen. De gebruiker mag slechts een van de opties kiezen. Als de vervolgkeuzelijst niet wordt weergegeven, is de momenteel geselecteerde optie de enige die zichtbaar is. Het is mogelijk om de
ChoiceBoxobject om een null-optie als geldige keuze te accepteren.
Importverklaring
javafx.scene.control importeren. ChoiceBox;
Constructeurs
De
ChoiceBoxklasse heeft twee constructeurs, één voor een lege lijst met items en één met een bepaalde set items:
// Maak een lege ChoiceBox
ChoiceBox-keuzes = nieuwe ChoiceBox ();
// Maak een ChoiceBox met behulp van een waarneembare lijstverzameling
ChoiceBox cboices = nieuwe ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
Handige methoden
Als u ervoor kiest om een leeg te maken
ChoiceBoxitems kunnen later worden toegevoegd met de
setItemsmethode:
keuzes.setItems (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
En als u wilt weten welke items in een
ChoiceBoxu kunt de
getItemsmethode:
Lijstopties = keuzes.getItems ();
Gebruik de om een optie te kiezen die momenteel moet worden geselecteerd
setValuemethode en geef deze een van de opties:
keuzes.setValue ("Eerste");
Gebruik de overeenkomstige optie om de waarde van de momenteel geselecteerde optie te krijgen
getValuemethode en wijs het toe aan een Draad:
Tekenreeksoptie = keuzen.getValue (). ToString ();
Afhandeling van evenementen
Om te luisteren naar evenementen voor een
ChoiceBoxobject, het
SelectieModelis gebruikt. De
ChoiceBoxgebruikt de
SingleSelectionModelklasse waarmee slechts één optie tegelijk kan worden gekozen. De
selectedIndexPropertymethode stelt ons in staat om een
ChangeListener. Dit betekent dat wanneer de geselecteerde optie verandert in een andere optie, de wijzigingsgebeurtenis zal plaatsvinden. Zoals u kunt zien aan de hand van de onderstaande code, wordt er naar een wijziging geluisterd en wanneer deze zich voordoet, kan de eerder geselecteerde optie en de nieuw geselecteerde optie worden bepaald:
definitieve lijstopties = keuzes.getItems ();
keuzes.getSelectionModel (). selectedIndexProperty (). addListener (nieuwe ChangeListener () {
@Override openbare leegte gewijzigd (ObservableValue ov, Number oldSelected, Number newSelected) {
System.out.println ("Oude geselecteerde optie:" + options.get (oldSelected.intValue ()));
System.out.println ("New Selected Option:" + options.get (newSelected.intValue ()));
}
});
Het is ook mogelijk om de lijst met opties te tonen of te verbergen zonder dat de gebruiker op de hoeft te klikken
ChoiceBoxobject met behulp van de
tonenen
verbergenmethoden. In de onderstaande code wordt een Button-object gebruikt om de showmethode van een aan te roepen
ChoiceBoxobject wanneer de
Knopis geklikt:
// Gebruik een stackpane voor een eenvoudige layout van de controls
StackPane root = nieuw StackPane ();
// Maak knop om de opties in de ChoiceBox weer te geven
Knop showOptionButton = nieuwe knop ("Show Options");
root.getChildren (). add (showOptionButton);
root.setAlignment (showOptionButton, Pos. MIDDEN BOVEN);
// Maak de ChoiceBox met een paar opties
definitieve ChoiceBox-keuzes = nieuwe ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
root.getChildren (). add (keuzes);
// Gebruik de ActionEvent om de ChoiceBox-showmethode aan te roepen
showOptionButton.setOnAction (nieuwe EventHandler () {
@Override openbare leegte-handle (ActionEvent e) {
keuzes.show ();
}
});
// Stel de scène in en breng het podium in beweging.
Scene scene = nieuwe scene (root, 300, 250);
primaryStage.setScene (scène);
primaryStage.show ();
Om meer te weten te komen over andere JavaFX-besturingselementen, bekijk JavaFX User Interface Controls.