De
ChoiceBoxklasse brukes til å lage en kontroll som gir brukeren noen få valg å velge fra en rullegardinliste. Brukeren har bare lov til å velge et av alternativene. Når rullegardinlisten ikke vises, er det valgte alternativet det eneste synlige. Det er mulig å stille inn
ChoiceBoxobjekt å akseptere et nullalternativ som et gyldig valg.
Importerklæring
import javafx.scene.control. ChoiceBox;
Constructors
De
ChoiceBoxklasse har to konstruktører en for en tom liste over varer og en med et gitt sett med varer:
// Opprett en tom ChoiceBox
ChoiceBox-valg = nye ChoiceBox ();
// Lag en ChoiceBox ved hjelp av en observerbar listesamling
ChoiceBox cboices = nye ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
Nyttige metoder
Hvis du velger å opprette en tom
ChoiceBoxelementer kan legges til senere ved å bruke
setItemsmetode:
valg.setItems (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
Og hvis du vil finne ut hva som er i en
ChoiceBoxdu kan bruke
getItemsmetode:
Listealternativer = choice.getItems ();
For å velge et alternativ som skal velges for øyeblikket, bruk
SetValueog gi det ett av alternativene:
choices.setValue ( "første");
For å få verdien på det valgte alternativet, bruk tilsvarende
getValuemetode og tilordne den til a string:
Strengealternativ = choice.getValue (). ToString ();
Arrangementshåndtering
For å lytte til hendelser for a
ChoiceBoxobjekt, the
SelectionModelbenyttes. De
ChoiceBoxbruker
SingleSelectionModelklasse som bare tillater å velge ett alternativ om gangen. De
selectedIndexPropertymetoden lar oss legge til en
ChangeListener. Dette betyr at når alternativet som er valgt endres til et annet alternativ, vil endringshendelsen oppstå. Som du ser fra koden nedenfor, blir det lyttet til en endring, og når den inntreffer, kan det tidligere valgte alternativet og det nylig valgte alternativet bestemmes:
final Listalternativer = choice.getItems ();
valg.getSelectionModel (). valgtIndexProperty (). addListener (ny ChangeListener () {
@Override offentlig tomrom ble endret (ObservableValue ov, Number oldVelected, Number newVelected) {
System.out.println ("Old Selected Option:" + options.get (oldSelected.intValue ()));
System.out.println ("Nytt valgt alternativ:" + options.get (newSelected.intValue ()));
}
});
Det er også mulig å vise eller skjule listen over alternativer uten at brukeren trenger å klikke på
ChoiceBoxobjekt ved å bruke
forestillingog
gjemme segmetoder. I koden under brukes et knappelement for å kalle showmetoden til a
ChoiceBoxobjekt når
Knapper klikket:
// Bruk en stabelrute for en enkel utforming av kontrollene
StackPane root = ny StackPane ();
// Opprett-knapp for å vise alternativene i ChoiceBox
Button showOptionButton = new Button ("Vis alternativer");
root.getChildren (). legge til (showOptionButton);
root.setAlignment (showOptionButton, Pos. TOP_CENTER);
// Lag ChoiceBox med noen få alternativer
endelige ChoiceBox-valg = nye ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
root.getChildren (). legge til (valg);
// Bruk ActionEvent for å ringe ChoiceBox-visningsmetoden
showOptionButton.setOnAction (new EventHandler () {
@Override offentlig tomromhåndtak (ActionEvent e) {
choices.show ();
}
});
// Sett scenen og sett scenen i bevegelse ..
Scene scene = ny Scene (root, 300, 250);
primaryStage.setScene (scene);
primaryStage.show ();
Hvis du vil finne ut om andre JavaFX-kontroller, kan du se på JavaFX brukergrensesnittkontroller.