ChoiceBoxTřída se používá k vytvoření ovládacího prvku, který uživateli poskytuje několik možností, jak vybrat z rozevíracího seznamu. Uživatel si může vybrat pouze jednu z možností. Pokud se rozevírací seznam nezobrazí, pak je aktuálně vybraná možnost viditelná. Je možné nastavit
ChoiceBoxobjekt akceptovat nulovou možnost jako platnou volbu.
Importní prohlášení
import javafx.scene.control. ChoiceBox;
Konstruktory
ChoiceBoxtřída má dva konstruktory jeden pro prázdný seznam položek a jeden s danou sadou položek:
// Vytvořte prázdný ChoiceBox
ChoiceBox choices = new ChoiceBox ();
// Vytvořte ChoiceBox pomocí kolekce pozorovatelných seznamů
ChoiceBox coboices = new ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
Užitečné metody
Pokud se rozhodnete vytvořit prázdný
ChoiceBoxPoložky lze přidat později pomocí
setItemsmetoda:
choices.setItems (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
A pokud chcete zjistit, jaké položky jsou v a
ChoiceBoxmůžete použít
getItemsmetoda:
Seznam voleb = choices.getItems ();
Chcete-li vybrat možnost, která má být aktuálně vybrána, použijte
setValuea poskytnout mu jednu z možností:
choices.setValue ("První");
Chcete-li získat hodnotu aktuálně vybrané možnosti, použijte odpovídající
getValuemetoda a přiřaďte ji k Tětiva:
String option = choices.getValue (). ToString ();
Zpracování událostí
Aby bylo možné poslouchat události a
ChoiceBoxobjekt,
SelectionModelse používá.
ChoiceBoxpoužívá
SingleSelectionModeltřída, která umožňuje najednou vybrat pouze jednu možnost.
selectedIndexPropertymetoda nám umožňuje přidat
ChangeListener. To znamená, že kdykoli se vybraná možnost změní na jinou možnost, dojde ke změně. Jak vidíte z níže uvedeného kódu, je poslouchána změna a když k ní dojde, lze určit dříve vybranou možnost a nově vybranou možnost:
final List options = choices.getItems ();
choices.getSelectionModel (). selectedIndexProperty (). addListener (new ChangeListener () {
@Override změněno veřejné neplatné (ObservableValue ov, Number oldSelected, Number newSelected) {
System.out.println ("Old Selected Option:" + options.get (oldSelected.intValue ()));
System.out.println ("New Selected Option:" + options.get (newSelected.intValue ()));
}
});
Je také možné zobrazit nebo skrýt seznam možností, aniž by uživatel musel kliknout na
ChoiceBoxobjekt pomocí
ukázata
skrýtmetody. V kódu pod tlačítkem Button se používá k vyvolání metody show a
ChoiceBoxobjekt, když
Knoflíkje kliknuto:
// Pro jednoduché rozvržení ovládacích prvků použijte zásobník
StackPane root = nový StackPane ();
// Tlačítko Create pro zobrazení možností v ChoiceBoxu
Tlačítko showOptionButton = nové tlačítko („Zobrazit možnosti“);
root.getChildren (). add (showOptionButton);
root.setAlignment (showOptionButton, Poz. TOP_CENTER);
// Vytvořte ChoiceBox s několika možnostmi
konečné volby ChoiceBox = nové ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Orange", "Peach", "Pear", "Strawberry"));
root.getChildren (). add (volby);
// Použijte ActionEvent k vyvolání metody show ChoiceBox
showOptionButton.setOnAction (new EventHandler () {
@Override public void handle (ActionEvent e) {
choices.show ();
}
});
// Nastavte scénu a uveďte scénu do pohybu.
Scéna scéna = nová scéna (root, 300, 250);
PrimaryStage.setScene (scéna);
PrimaryStage.show ();
Chcete-li se dozvědět více o ovládacích prvcích JavaFX, podívejte se na ovládací prvky uživatelského rozhraní JavaFX.