De
ChoiceBoxklasse wordt gebruikt om een besturingselement te maken waarmee de gebruiker een aantal keuzes kan maken uit een vervolgkeuzelijst. De gebruiker mag slechts één van de opties kiezen. Wanneer de vervolgkeuzelijst niet wordt weergegeven, is de momenteel geselecteerde optie de enige zichtbare. Het is mogelijk om de
ChoiceBoxbezwaar maken tegen een nuloptie als een geldige keuze.
javafx.scene.control.ChoiceBox importeren;
De
ChoiceBoxklasse heeft twee constructors, één voor een lege lijst met items en één met een gegeven 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"));
Als u ervoor kiest om een lege 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 gebruiken
getItemsmethode:
Lijstopties = keuzes.getItems ();
Gebruik de om een optie te kiezen die momenteel moet worden geselecteerd
setValuemethode en geef het een van de opties:
choices.setValue ( "First");
Gebruik de bijbehorende om de waarde van de momenteel geselecteerde optie te krijgen
getValuemethode en wijs het toe aan een string:
String-optie = keuzes.getValue (). ToString ();
Om te luisteren naar evenementen voor een
ChoiceBoxobject, de
SelectionModelis gebruikt. De
ChoiceBoxgebruikt de
SingleSelectionModelklasse waarbij slechts één optie tegelijk kan worden gekozen. De
selectedIndexPropertymethode kunnen we een toevoegen
ChangeListener. Dit betekent dat wanneer de geselecteerde optie in een andere optie verandert, de gebeurtenis change plaatsvindt. Zoals u kunt zien in de onderstaande code, wordt geluisterd naar een wijziging en wanneer deze plaatsvindt, kan de eerder geselecteerde optie en de nieuw geselecteerde optie worden bepaald:
final Lijstopties = keuzes.getItems ();
keuzes.getSelectionModel (). selectedIndexProperty (). addListener (new ChangeListener ()
@Override public void veranderde (ObservableValue ov, Number oldSelected, Number newSelected)
System.out.println ("Oude geselecteerde optie:" + options.get (oldSelected.intValue ()));
System.out.println ("Nieuwe geselecteerde optie:" + options.get (newSelected.intValue ()));
);
Het is ook mogelijk om de lijst met opties te tonen of te verbergen zonder dat de gebruiker op hoeft te klikken
ChoiceBoxobject met behulp van de
tonenen
verbergenmethoden. In de onderstaande code wordt een Button-object gebruikt om de show-methode van a aan te roepen
ChoiceBoxobject wanneer de
Knopwordt geklikt:
// Gebruik een stapelvenster voor een eenvoudige lay-out van de bedieningselementen
StackPane root = new StackPane ();
// Create Button om de opties in de ChoiceBox te tonen
Knop showOptionButton = nieuwe knop ("Opties weergeven");
root.getChildren () toe te voegen (showOptionButton).;
root.setAlignment (showOptionButton, Pos.TOP_CENTER);
// Maak de ChoiceBox met een paar opties
laatste ChoiceBox-keuzes = nieuwe ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
root.getChildren () toe te voegen (keuzes).;
// Gebruik de ActionEvent om de methode ShowBox te roepen
showOptionButton.setOnAction (nieuwe EventHandler ()
@Override public void handle (ActionEvent e)
choices.show ();
);
// Stel de scène in en breng het podium in beweging ...
Scene scene = nieuwe Scene (root, 300, 250);
primaryStage.setScene (scene);
primaryStage.show ();
Kijk voor meer informatie over andere JavaFX-besturingselementen naar JavaFX User Interface Controls.