La classe ComboBox crea un controllo che consente all'utente di selezionare un'opzione da un elenco a discesa di opzioni. L'elenco a discesa viene visualizzato quando l'utente fa clic sul controllo ComboBox. Quando il numero di opzioni supera la dimensione della finestra a discesa, l'utente può scorrere verso il basso per ulteriori opzioni. Questo differisce dal ChoiceBox che viene utilizzato principalmente quando il numero di scelte è un insieme relativamente piccolo.
Dichiarazione di importazione
javafx.scene.control. Casella combinata
Costruttori
La classe ComboBox ne ha due costruttori a seconda che si desideri creare un oggetto ComboBox vuoto o uno popolato con elementi.
Per creare un ComboBox vuoto
ComboBox fruit = new ComboBox ();
Per creare un oggetto ComboBox e popolarlo con elementi String da un ObservableList
Frutti ObservableList = FXCollections.observableArrayList (
"Mela", "Banana", "Pera", "Fragola", "Pesca", "Arancia", "Prugna");
ComboBox fruit = nuovo ComboBox (frutti);
Metodi Utili
Se si crea un oggetto ComboBox vuoto, è possibile utilizzare il metodo setItems. Il passaggio di un Elenco osservabile di oggetti imposterà gli elementi nella casella combinata.
Frutti ObservableList = FXCollections.observableArrayList (
"Mela", "Banana", "Pera", "Fragola", "Pesca", "Arancia", "Prugna");
fruit.setItems (frutti);
Se si desidera aggiungere elementi all'elenco ComboBox in un secondo momento, è possibile utilizzare il metodo addAll del metodo getItems. Questo aggiungerà gli elementi alla fine dell'elenco delle opzioni:
fruit.getItems (). addAll ("Melon", "Cherry", "Blackberry");
Per aggiungere un'opzione a una posizione specifica nell'elenco delle opzioni di ComboBox, utilizzare il metodo add del metodo getItems. Questo metodo accetta un valore di indice e il valore che si desidera aggiungere:
fruit.getItems (). add (1, "Lemon");
Nota: I valori dell'indice di ComboBox iniziano da 0. Ad esempio, il valore precedente di "Lemon" sopra verrà inserito nell'elenco delle opzioni ComboBox nella posizione 2 quando l'indice passato è 1.
Per preselezionare un'opzione nell'elenco delle opzioni di ComboBox, utilizzare il metodo setValue:
fruit.setValue ( "Cherry");
Se il valore passato al metodo setValue non è nell'elenco, il valore verrà comunque selezionato. Tuttavia, ciò non significa che questo valore sia stato aggiunto all'elenco. Se l'utente seleziona successivamente un altro valore, il valore iniziale non sarà più nell'elenco da selezionare.
Per ottenere il valore dell'elemento attualmente selezionato in ComboBox, utilizzare il metodo getItems:
Stringa selezionata = fruit.getValue (). ToString ();
Suggerimenti per l'uso
Il numero di opzioni normalmente presentate dall'elenco a discesa ComboBox è dieci (a meno che non vi siano meno di dieci voci, nel qual caso il valore predefinito è il numero di voci). Questo numero può essere modificato utilizzando il metodo setVisibleRowCount:
fruit.setVisibleRowCount (25);
Ancora una volta, se il numero di elementi nell'elenco è inferiore al valore impostato nel metodo setVisibleRowCount, ComboBox visualizzerà automaticamente il numero di elementi nel menu a discesa ComboBox.
Gestione degli eventi
Per tenere traccia della selezione di elementi su un oggetto ComboBox è possibile utilizzare il metodo addListener di metodo selectedItemProperty di SelectionModel per creare un ChangeListener Raccoglierà gli eventi di modifica per ComboBox:
etichetta finale selectionLabel = new Label ();
fruit.getSelectionModel (). selectedItemProperty (). addListener (
nuovo ChangeListener () {
vuoto pubblico modificato (ObservableValue ov,
String old_val, String new_val) {
selectionLabel.setText (new_val);
}
});