Det
ChoiceBoxklasse bruges til at oprette en kontrol, der giver brugeren nogle få valg at vælge fra en rulleliste. Brugeren har kun tilladelse til at vælge en af indstillingerne. Når rullelisten ikke vises, er den aktuelt valgte indstilling den eneste synlige. Det er muligt at indstille
ChoiceBoxmodstand mod at acceptere en nullindstilling som et gyldigt valg.
Importerklæring
import javafx.scene.control. ChoiceBox;
Constructors
Det
ChoiceBoxklassen har to konstruktører en til en tom liste over varer og en med et givet sæt af varer:
// Opret en tom ChoiceBox
ChoiceBox-valg = nyt ChoiceBox ();
// Opret en ChoiceBox ved hjælp af en observerbar listesamling
ChoiceBox cboices = ny ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
Nyttige metoder
Hvis du vælger at oprette en tom
ChoiceBoxvarer kan tilføjes senere ved hjælp af
setItemsmetode:
valg.setItems (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
Og hvis du vil finde ud af, hvilke varer der findes i en
ChoiceBoxdu kan bruge
getItemsmetode:
Listeindstillinger = valg.getItems ();
For at vælge en mulighed, der skal vælges i øjeblikket, skal du bruge
setValueog give den en af mulighederne:
choices.setValue ( "først");
For at få værdien af den aktuelt valgte indstilling skal du bruge det tilsvarende
getValuemetode og tildele den til en Snor:
String option = choice.getValue (). ToString ();
Begivenhedshåndtering
For at lytte til begivenheder til en
ChoiceBoxobjekt, the
SelectionModelanvendes. Det
ChoiceBoxbruger
SingleSelectionModelklasse, der kun tillader at vælge en mulighed ad gangen. Det
selectedIndexPropertymetoden giver os mulighed for at tilføje en
ChangeListener. Dette betyder, at hver gang den valgte indstilling ændres til en anden mulighed, ændres begivenheden. Som du kan se fra koden nedenfor, lyttes der til en ændring, og når den forekommer, kan den tidligere valgte indstilling og den nyligt valgte indstilling bestemmes:
endelige Listeindstillinger = valg.getItems ();
valg.getSelectionModel (). valgtIndexProperty (). addListener (ny ChangeListener () {
@Override offentligt tomrum ændret (ObservableValue ov, Number oldSelected, Number newVelected) {
System.out.println ("Old Selected Option:" + options.get (oldSelected.intValue ()));
System.out.println ("Ny valgt mulighed:" + option.get (newSelected.intValue ()));
}
});
Det er også muligt at vise eller skjule listen over indstillinger uden at brugeren behøver at klikke på
ChoiceBoxobjekt ved hjælp af
at viseog
skjulemetoder. I koden nedenfor bruges et knap-objekt til at kalde visningsmetoden for a
ChoiceBoxobjekt, når
Knapklikkes på:
// Brug en stackpane til et enkelt layout af kontrollerne
StackPane root = ny StackPane ();
// Opret knap for at vise indstillingerne i ChoiceBox
Button showOptionButton = ny knap ("Vis indstillinger");
root.getChildren (). tilføj (showOptionButton);
root.setAlignment (showOptionButton, Pos. TOP_CENTER);
// Opret ChoiceBox med et par muligheder
endelige ChoiceBox-valg = nye ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
root.getChildren (). tilføj (valg);
// Brug ActionEvent til at kalde ChoiceBox-visningsmetoden
showOptionButton.setOnAction (ny EventHandler () {
@Override offentligt annulleret håndtag (ActionEvent e) {
choices.show ();
}
});
// Sæt scenen og sæt scenen i bevægelse ..
Scene scene = ny scene (root, 300, 250);
PrimaryStage.setScene (scene);
primaryStage.show ();
Hvis du vil finde ud af andre JavaFX-kontroller, skal du se på JavaFX-brugergrænsefladekontroller.