JavaFX kontrole: pregled ChoiceBox-a

ChoiceBox
klase koristi se za stvaranje kontrole koja korisniku nudi nekoliko izbora za odabir s padajućeg popisa. Korisniku je omogućeno da odabere samo jednu od opcija. Kad se padajući popis ne prikazuje, trenutno je vidljiva trenutno odabrana opcija. Moguće je postaviti
ChoiceBox
objekt prihvatiti nultu opciju kao valjan izbor.

Izjava o uvozu

uvoz javafx.scene.control. ChoiceBox;

graditelji

ChoiceBox
klasa ima dva konstruktora, jedan za prazan popis predmeta, a jedan s danim setom predmeta:
// Stvorite prazan ChoiceBox
ChoiceBox izbori = novi ChoiceBox ();
// Stvorite ChoiceBox pomoću zbirke promatračkih popisa
ChoiceBox cboices = novi ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Breskva", "Kruška", "Jagoda"));

Korisne metode

Ako odlučite stvoriti prazno

ChoiceBox
stavke mogu se kasnije dodati pomoću
setItems
metoda:
choices.setItems (FXCollections.observableArrayList ("Jabuka", "Banana", "Naranča", "Breskva", "Kruška", "Jagoda"));

Ako želite saznati koji su predmeti u a

ChoiceBox
možete koristiti
getItems
metoda:
instagram viewer
Popis opcija = choices.getItems ();

Da biste odabrali trenutno odabranu opciju, upotrijebite

setValue
metoda i pružite joj jednu od mogućnosti:
choices.setValue ( "prvi");

Za dobivanje vrijednosti trenutno odabrane opcije koristite odgovarajuću

getValue
metoda i dodijeliti je a Niz:
String opcija = choices.getValue (). ToString ();

Rukovanje događajima

Kako biste mogli slušati događaje za a

ChoiceBox
objekt, the
SelectionModel
koristi se.
ChoiceBox
koristi
SingleSelectionModel
klase koja dopušta da se istovremeno odabere samo jedna opcija.
selectedIndexProperty
nam omogućuje da dodamo a
ChangeListener
. To znači da će se, kad god se odabrana opcija promijeni u drugu opciju, dogoditi promjena. Kao što vidite iz donjeg koda, promjena se preslušava i kad se dogodi, prethodno odabrana opcija i novoizabrana opcija mogu se odrediti:
konačne opcije popisa = choices.getItems ();
choices.getSelectionModel (). selectedIndexProperty (). addListener (novi ChangeListener () {
@Override javna nevažeća promijenjena (ObservableValue ov, Broj oldSelected, Broj newSelected) {
System.out.println ("Stara odabrana opcija:" + options.get (oldSelected.intValue ()));
System.out.println ("Nova odabrana opcija:" + options.get (newSelected.intValue ()));
}
});

Također je moguće prikazati ili sakriti popis opcija bez da korisnik mora kliknuti na

ChoiceBox
objekta pomoću
pokazati
i
sakriti
metode. U kodu ispod, objekt Button koristi se za poziv metode prikazivanja a
ChoiceBox
objekta kad
Dugme
klikne:
// Upotrijebite snop za jednostavno postavljanje kontrola
StackPane root = novi StackPane ();
// Gumb Stvori za prikaz opcija u ChoiceBoxu
Gumb showOptionButton = novi gumb ("Prikaži opcije");
root.getChildren (). dodati (showOptionButton);
root.setAlignment (showOptionButton, poz. TOP_CENTER);
// Stvorite ChoiceBox s nekoliko opcija
konačni ChoiceBox izbori = novi ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Breskva", "Kruška", "Jagoda"));
root.getChildren (). dodati (izbor);
// Upotrijebite ActionEvent za poziv ChoiceBox show metode
showOptionButton.setOnAction (novi EventHandler () {
@Override javno ručno praćenje (ActionEvent e) {
choices.show ();
}
});
// Postavite scenu i stavite pozornicu u pokret ..
Scena scene = nova scena (korijen, 300, 250);
PrimaryStage.setScene (scena);
primaryStage.show ();

Da biste saznali više o ostalim JavaFX kontrolama, pogledajte kontrole JavaFX korisničkog sučelja.