我添加了这样的听众,
FwDescriptionListView.itemsProperty().addListener((observable, oldValue, newValue) -> {
System.out.println("Old = " + oldValue + ", new = " + newValue);
});
并编辑了像这样的ListProperty值,
FwDescriptionListView.itemsProperty().getValue().remove(descText);
为什么不通知听众?
答案 0 :(得分:1)
ListView
' itemsProperty
是ObjectProperty<ObservableList<T>>
(其中T
是列表中的对象类型)。如果您替换整个列表,即如果您执行
fwDescriptionsListView.setItems(someWholeNewList);
当然,这不是你在做什么:你只是从列表中删除一个元素。 (请注意,您的代码等同于fwDescriptionListView.getItems().remove(descText);
,这是执行此操作的更常见方式。)
要收听列表中的更改,请在列表中注册ListChangeListener
:
fwDescriptionListView.getItems().addListener((ListChangeListener.Change<? extends T> change) -> {
System.out.println("List changed");
});
其中,再次将T
替换为列表元素的类型。您可以从change
参数获取有关列表实际发生的事件(添加的项目,删除的项目等)的更多信息:有关详细信息,请参阅Javadocs。