Info

ComboBox Übersicht

ComboBox Übersicht


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Die ComboBox-Klasse erstellt ein Steuerelement, mit dem der Benutzer eine Option aus einer Dropdown-Liste von Optionen auswählen kann. Die Dropdown-Liste wird angezeigt, wenn der Benutzer auf das ComboBox-Steuerelement klickt. Wenn die Anzahl der Optionen die Größe des Dropdown-Fensters überschreitet, kann der Benutzer zu weiteren Optionen scrollen. Dies unterscheidet sich von der ChoiceBox, die hauptsächlich verwendet wird, wenn die Anzahl der Auswahlmöglichkeiten relativ gering ist.

Import-Anweisung

javafx.scene.control.ComboBox

Konstruktoren

Die ComboBox-Klasse verfügt über zwei Konstruktoren, je nachdem, ob Sie ein leeres ComboBox-Objekt oder ein Objekt mit Elementen erstellen möchten.

So erstellen Sie eine leere ComboBox

ComboBox fruit = neue ComboBox ();

So erstellen Sie ein ComboBox-Objekt und füllen es mit Zeichenfolgenelementen aus einer ObservableList

ObservableList fruits = FXCollections.observableArrayList (
"Apfel", "Banane", "Birne", "Erdbeere", "Pfirsich", "Orange", "Pflaume");
ComboBox fruit = neue ComboBox (Früchte);

Nützliche Methoden

Wenn Sie ein leeres ComboBox-Objekt erstellen, können Sie die Methode setItems verwenden. Wenn Sie eine ObservableList von Objekten übergeben, werden die Elemente in der Combobox festgelegt.

ObservableList fruits = FXCollections.observableArrayList (
"Apfel", "Banane", "Birne", "Erdbeere", "Pfirsich", "Orange", "Pflaume");
fruit.setItems (Früchte);

Wenn Sie der ComboBox-Liste später Elemente hinzufügen möchten, können Sie die Methode addAll der Methode getItems verwenden. Dadurch werden die Elemente an das Ende der Optionsliste angehängt:

fruit.getItems (). addAll ("Melone", "Kirsche", "Brombeere");

Verwenden Sie die add-Methode der getItems-Methode, um einer bestimmten Stelle in der ComboBox-Optionsliste eine Option hinzuzufügen. Diese Methode verwendet einen Indexwert und den Wert, den Sie hinzufügen möchten:

fruit.getItems (). add (1, "Lemon");

Hinweis: Die Indexwerte der ComboBox beginnen bei 0. Beispielsweise wird der obige Wert von "Lemon" an Position 2 in die Optionsliste der ComboBox eingefügt, wenn der übergebene Index 1 ist.

Verwenden Sie die setValue-Methode, um eine Option in der ComboBox-Optionsliste im Voraus auszuwählen:

fruit.setValue ("Cherry");

Wenn der an die setValue-Methode übergebene Wert nicht in der Liste enthalten ist, wird der Wert weiterhin ausgewählt. Dies bedeutet jedoch nicht, dass dieser Wert zur Liste hinzugefügt wurde. Wenn der Benutzer anschließend einen anderen Wert auswählt, befindet sich der Anfangswert nicht mehr in der auszuwählenden Liste.

Verwenden Sie die getItems-Methode, um den Wert des aktuell ausgewählten Elements in der ComboBox abzurufen:

String selected = fruit.getValue (). ToString ();

Anwendungstipps

Die Anzahl der Optionen, die normalerweise in der Dropdown-Liste ComboBox angezeigt werden, beträgt zehn (es sei denn, es gibt weniger als zehn Elemente. In diesem Fall wird standardmäßig die Anzahl der Elemente verwendet). Diese Nummer kann mithilfe der setVisibleRowCount-Methode geändert werden:

fruit.setVisibleRowCount (25);

Wenn die Anzahl der Elemente in der Liste geringer ist als der in der Methode setVisibleRowCount festgelegte Wert, zeigt die ComboBox standardmäßig die Anzahl der Elemente in der Dropdown-Liste ComboBox an.

Ereignisse verarbeiten

Um die Auswahl von Elementen in einem ComboBox-Objekt zu verfolgen, können Sie die Methode addListener der Methode selectedItemProperty des SelectionModel verwenden, um einen ChangeListener zu erstellen. Dabei werden die Änderungsereignisse für die ComboBox abgerufen:

final Label selectionLabel = new Label ();
fruit.getSelectionModel (). selectedItemProperty (). addListener (
neuer ChangeListener () {
public void geändert (ObservableValue ov,
String old_val, String new_val) {
selectionLabel.setText (new_val);
}
});