如何在JavaFX中将ObjectProperty <string>转换为StringProperty?

时间:2016-07-04 14:14:48

标签: java javafx

有一种方法可以将ObjectProperty<Integer>转换为IntegerProperty。这是:

https://docs.oracle.com/javase/8/javafx/api/javafx/beans/property/IntegerProperty.html#integerProperty-javafx.beans.property.Property-

为什么没有类似的方法可以将ObjectProperty<String>转换为StringProperty?如何转换?

1 个答案:

答案 0 :(得分:0)

Looking at the source for integerProperty,所有这一切都是双向绑定(并在最终确定中取消绑定)。

您可以复制integerProperty的内容,并将其修改为使用StringProperty

public static StringProperty makeStringProperty(final Property<String> property) {
    Objects.requireNonNull(property, "Property cannot be null");

    return new StringPropertyBase() {
        {
            bindBidirectional(property);
        }

        @Override
        public Object getBean() {
            return null; // Virtual property, no bean
        }

        @Override
        public String getName() {
            return property.getName();
        }

        @Override
        protected void finalize() throws Throwable {
            try {
                unbindBidirectional(property);
            } finally {
                super.finalize();
            }
        }
    };
}

我在这里修改了一下,所以它不使用内部包。