我只找到了如何将 StringProperty 绑定(bind)到 IntegerProperty 的解决方案,如下所示:
StringProperty.bindBidirectional(IntegerProperty, new NumberStringConverter());
但我还需要null
值(value)。如何绑定(bind)StringProperty to ObjectProperty<Integer>
?
最佳答案
默认 IntegerStringConverter
理解空值:
ObjectProperty<Integer> objP = new SimpleObjectProperty<>();
stringProp.bindBidirectional(objP, new IntegerStringConverter());
objP.setValue(null); // stringProp == ""
stringProp.setValue(""); // objP == null
如果您想要不同的行为,您可以制作自己的转换器:
ObjectProperty<Integer> objP = new SimpleObjectProperty<>();
stringProperty.bindBidirectional(objP, new StringConverter<Integer>() {
@Override
public String toString(Integer number) {
return number == null ? "NULL" : number.toString();
}
@Override
public Integer fromString(String string) {
return string.equals("NULL") ? null : Integer.valueOf(string);
}
});
// both works:
objP.setValue(null);
objP.setValue(100);
关于java - 如何在 JavaFX 中将 StringProperty 绑定(bind)到 ObjectProperty<Integer>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46132450/