De
ChoiceBoxklass används för att skapa en kontroll som ger användaren några val att välja från en listruta. Användaren får bara välja ett av alternativen. När listrutan inte visas är det för närvarande valda alternativet det enda synliga. Det är möjligt att ställa in
ChoiceBoxobjekt för att acceptera ett null-alternativ som ett giltigt val.
importera javafx.scene.control.ChoiceBox;
De
ChoiceBoxklass har två konstruktörer en för en tom lista med objekt och en med en viss uppsättning objekt:
// Skapa en tom ChoiceBox
ChoiceBox-val = nytt ChoiceBox ();
// Skapa en ChoiceBox med en observerbar listsamling
ChoiceBox cboices = ny ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
Om du väljer att skapa en tom
ChoiceBoxobjekt kan läggas till senare med hjälp av
setItemsmetod:
choice.setItems (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
Och om du vill ta reda på vilka artiklar som finns i en
ChoiceBoxdu kan använda
getItemsmetod:
Listalternativ = choice.getItems ();
För att välja ett alternativ som ska väljas för närvarande använder du
satt värdeoch ge det ett av alternativen:
choices.setValue ( "först");
För att få värdet för det valda alternativet använder du motsvarande
getValuemetod och tilldela den till en sträng:
Strängalternativ = choice.getValue (). ToString ();
För att lyssna på händelser för a
ChoiceBoxobjekt,
SelectionModelär använd. De
ChoiceBoxanvänder
SingleSelectionModelklass som bara gör det möjligt att välja ett alternativ åt gången. De
selectedIndexPropertymetod tillåter oss att lägga till en
ChangeListener. Detta innebär att när det valda alternativet ändras till ett annat alternativ kommer ändringshändelsen att inträffa. Som du kan se från koden nedan lyssnar en ändring på och när den inträffar kan det tidigare valda alternativet och det nyligen valda alternativet bestämmas:
final Listalternativ = choice.getItems ();
choice.getSelectionModel (). valdIndexProperty (). addListener (ny ChangeListener ()
@Override offentligt tomrum har ändrats (ObservableValue ov, Number oldValda, Number newValda)
System.out.println ("Old Selected Option:" + options.get (oldSelected.intValue ()));
System.out.println ("Nytt valt alternativ:" + optioner.get (newSelected.intValue ()));
);
Det är också möjligt att visa eller dölja listan med alternativ utan att användaren behöver klicka på
ChoiceBoxobjekt med hjälp av
visaoch
Döljmetoder. I koden nedan används ett knappobjekt för att kalla show-metoden för a
ChoiceBoxobjekt när
Knappklickas:
// Använd en stapelpanel för en enkel layout av kontrollerna
StackPane root = new StackPane ();
// Skapa knapp för att visa alternativen i ChoiceBox
Button showOptionButton = new Button ("Visa alternativ");
root.getChildren () sätt (showOptionButton).;
root.setAlignment (showOptionButton, Pos.TOP_CENTER);
// Skapa ChoiceBox med några alternativ
slutliga ChoiceBox-val = nya ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
root.getChildren () lägga (val).;
// Använd ActionEvent för att ringa ChoiceBox-showmetoden
showOptionButton.setOnAction (ny EventHandler ()
@Override offentligt ogiltigt handtag (ActionEvent e)
choices.show ();
);
// Ställ in scenen och sätt scenen i rörelse ...
Scenplats = ny scen (root, 300, 250);
primaryStage.setScene (scen);
primaryStage.show ();
Ta en titt på JavaFX-användargränssnittskontroller för att ta reda på andra JavaFX-kontroller.