Callback<ObservableMap<String, ObservableValue>, Observable[]> extractor = new Callback<ObservableMap<String, ObservableValue>, Observable[]>() {
@Override
public Observable[] call(ObservableMap<String, ObservableValue> param) {
List<ObservableValue> ObservableList = new ArrayList<>(param.values());
Observable arr[] = new Observable[ObservableList.size()];
return ObservableList.toArray(arr);
}
};
ObservableList<ObservableMap<String, ObservableValue>><ObservableMap<String,ObservableValue>> nodesList = = FXCollections.observableArrayList(extractor);
ObservableMap<String, ObservableValue> map = FXCollections.observableHashMap();
// map操作略
nodesList.add(map);
nodesList.addListener(createListChangeListener(poiMapLayer));
private ListChangeListener<ObservableMap<String,ObservableValue>> createListChangeListener(PoiMapLayer poiMapLayer){
ListChangeListener<ObservableMap<String,ObservableValue>> result = new ListChangeListener<ObservableMap<String,ObservableValue>>() {
@Override
public void onChanged(Change<? extends ObservableMap<String, ObservableValue>> change) {
while (change.next()) {
if (change.wasPermutated()) {
// 重新排列
} else if (change.wasUpdated()) {
// 更改
} else if (change.wasReplaced()) {
// 被替换
// 删除
List<? extends ObservableMap<String, ObservableValue>> removeList = change.getRemoved();
for (ObservableMap<String, ObservableValue> observableMap : removeList) {
map的value类型 map的value = (map的value类型)observableMap.get("map的key").getValue();
}
// 添加
List<? extends ObservableMap<String, ObservableValue>> addList = change.getAddedSubList();
for (ObservableMap<String, ObservableValue> observableMap : addList) {
}
} else {
if (change.wasRemoved()) {
// 删除
List<? extends ObservableMap<String, ObservableValue>> removeList = change.getRemoved();
for (ObservableMap<String, ObservableValue> observableMap : removeList) {
}
} else if (change.wasAdded()) {
// 添加
List<? extends ObservableMap<String, ObservableValue>> addList = change.getAddedSubList();
for (ObservableMap<String, ObservableValue> observableMap : addList) {
}
}
}
}
}
};
return result;
}
JavaFX ObservableList监听,可应用于监听子节点的变化
最新推荐文章于 2023-08-12 20:09:59 发布