Addlistener для "автозаполнения" Combobox в JavaFX - PullRequest
0 голосов
/ 26 февраля 2020

Я реализовал ComboBox, который можно редактировать и автозаполнение аналогично тому, как в этом ответе: { ссылка }

Теперь я хочу добавить слушатель, который выполняет какое-то действие, когда значение в этом Combobox изменения. Примерно так:

combobox.getValueProperty().addListener((obs, oldV, newV) -> {...});

Проблема в том, что я не могу получить доступ к combobox.getValueProperty () без получения java .lang.ClassCastException . В ответе , указанном выше, упоминается get значение комбинированного списка со следующей функцией:

    public static <T> TgetComboBoxValue(ComboBox<T> comboBox) {
    if (comboBox.getSelectionModel().getSelectedIndex() < 0) {
        return null;
    } else {
        return comboBox.getItems().get(comboBox.getSelectionModel().getSelectedIndex());
    }
}

Как создать и получить доступ к свойству для добавления прослушивателя ?

Спасибо, BR

1 Ответ

0 голосов
/ 26 февраля 2020

Вы можете добавить propertyChangeListener к этому списку

 comboBox.addPropertyChangeListener(evt -> {

 });

Или, кроме того, вы можете запустить собственное событие изменения свойства. Где 2 - старое значение, а 3 - новое значение в выпадающем списке. Он также может принимать строки, логические значения и другие примитивные типы.

 comboBox.firePropertyChange("samplePropertyChange", 2, 3);
...