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 rullgardinsmenyn 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.
Importmeddelande
importera javafx.scene.control. ChoiceBox;
konstruktörer
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"));
Användbara metoder
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 ();
Händelsehändelse
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 ser 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 (). lägg till (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ägg till (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);
primärsteg.setScene (scen);
primaryStage.show ();
Ta reda på JavaFX-kontroller för användargränssnitt för att ta reda på andra JavaFX-kontroller.