【发布时间】:2020-06-10 04:57:42
【问题描述】:
我实现了一个可编辑的 ComboBox 并自动完成,类似于此答案中的一个: https://stackoverflow.com/a/27384068/9611276
现在我想添加一个监听器,当这个 Combobox 中的值发生变化时它会执行一些操作。像这样的:
combobox.getValueProperty().addListener((obs, oldV, newV) -> {...});
问题是,如果没有 java.lang.ClassCastException,我无法访问 combobox.getValueProperty()。在上面的answer 中提到使用以下函数获取组合框值:
public static <T> TgetComboBoxValue(ComboBox<T> comboBox) {
if (comboBox.getSelectionModel().getSelectedIndex() < 0) {
return null;
} else {
return comboBox.getItems().get(comboBox.getSelectionModel().getSelectedIndex());
}
}
如何创建和访问属性以添加监听器?
谢谢, BR
【问题讨论】:
-
老实说,我尝试了该问题的“答案”,但有许多严重的错误无法继续。在我看来,我根据那里的一些其他答案提供了一个更好的解决方案,同时修复了它的一些错误。 stackoverflow.com/a/55709876/9278333 我在生产环境中使用它,它运行得非常好(即使有 10,000 多个可能的值)。升级后还有一条通往 Java 9+ 的道路。
标签: java javafx combobox javafx-8