我有一个UI元素,需要在Map更新时更新。我想将Map大小与ObjectProperty绑定,但.bind()
方法不允许。如何将属性与Map大小绑定?代码示例:
public class ContainerOJ {
protected final ObjectProperty<Integer> objCount;
protected Map<String, String> stackMap;
public ContainerOJ() {
this.objCount = new SimpleObjectProperty<>(0);
this.stackMap = new HashMap<>();
// objCount.bind(stackMap.size());
}
public void addToStack(String newObj) {
if (stackMap.get(newObj) != null) {
/* Obj:{}, already exists in the Stack:{} */
return;
}
stackMap.put(newObj, newObj);
objCount.set(stackMap.size());
}
public Integer getObjCount() {
return objCount.get();
}
public ObjectProperty<Integer> objCountProperty() {
return objCount;
}
}
1条答案
按热度按时间cgh8pdjw1#
不应使用
ObjectProperty<Integer>
。请改用ReadOnlyIntegerWrapper和ReadOnlyIntegerProperty:实际上,您可以使用ObservableMap来简化此操作:
我不知道为什么你要在这里使用Map,因为你的键和值是一样的,看起来你应该使用Set,更具体地说,ObservableSet: