java - 如何在 JavaFX 中将 StringProperty 绑定(bind)到 ObjectProperty<Integer>?

标签 java javafx data-binding

我只找到了如何将 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/

相关文章:

c# - 如何将 ObservableCollection<LineSeries> 绑定(bind)到图表

c# - 用于基于选项卡控件的应用程序的 MVVM

java - 我如何才能防止 LogCat 接收到我手机上的所有内容?

.net - 通用 IBindingListView 实现

java - 将 cookie 从 JNLP 传递到 JAVAWS 以下载 protected 资源

java - 如何将 JavaFX 节点导出为 SVG 图像?

performance - JavaFX:List 与 ObservableList 性能/内存使用情况

java - 如何确保舞台作为窗口而不是选项卡打开?

java - 如何转换 Flume 中的事件并将其发送到另一个 channel ?

java - 空指针异常 - Robotium 单元测试