JavaFX-besturingselementen: ChoiceBox-overzicht

De

ChoiceBox
klasse 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
ChoiceBox
object om een ​​null-optie als geldige keuze te accepteren.

Importverklaring

javafx.scene.control importeren. ChoiceBox;

Constructeurs

De

ChoiceBox
klasse 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

ChoiceBox
items kunnen later worden toegevoegd met de
setItems
methode:
keuzes.setItems (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
instagram viewer

En als u wilt weten welke items in een

ChoiceBox
u kunt de
getItems
methode:
Lijstopties = keuzes.getItems ();

Gebruik de om een ​​optie te kiezen die momenteel moet worden geselecteerd

setValue
methode en geef deze een van de opties:
keuzes.setValue ("Eerste");

Gebruik de overeenkomstige optie om de waarde van de momenteel geselecteerde optie te krijgen

getValue
methode en wijs het toe aan een Draad:
Tekenreeksoptie = keuzen.getValue (). ToString ();

Afhandeling van evenementen

Om te luisteren naar evenementen voor een

ChoiceBox
object, het
SelectieModel
is gebruikt. De
ChoiceBox
gebruikt de
SingleSelectionModel
klasse waarmee slechts één optie tegelijk kan worden gekozen. De
selectedIndexProperty
methode 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

ChoiceBox
object met behulp van de
tonen
en
verbergen
methoden. In de onderstaande code wordt een Button-object gebruikt om de showmethode van een aan te roepen
ChoiceBox
object wanneer de
Knop
is 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.

instagram story viewer