我发现只有解决方法如何将StringProperty绑定到IntegerProperty,如下所示:
StringProperty.bindBidirectional(IntegerProperty, new NumberStringConverter());
但我还需要null
值。如何绑定StringProperty to ObjectProperty<Integer>
?
答案 0 :(得分:3)
默认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);