ChoiceBox Overzicht

De

ChoiceBox
klasse 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
ChoiceBox
bezwaar maken tegen een nuloptie als een geldige keuze.

Importverklaring

javafx.scene.control.ChoiceBox importeren;

constructors

De

ChoiceBox
klasse 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"));

Handige methoden

Als u ervoor kiest om een ​​lege te maken

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

En als u wilt weten welke items in een

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

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

setValue
methode en geef het een van de opties:
choices.setValue ( "First");

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

getValue
methode en wijs het toe aan een string:
String-optie = keuzes.getValue (). ToString ();

Evenementafhandeling

Om te luisteren naar evenementen voor een

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

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