gpt4 book ai didi

java - 将 TextField 绑定(bind)到 ReadOnlyDoubleProperty

转载 作者:行者123 更新时间:2023-12-03 11:17:52 26 4
gpt4 key购买 nike

我可以绑定(bind)一个TextField的文本属性为 DoubleProperty , 像这样:

textField.textProperty().bindBidirectional(someDoubleProperty, new NumberStringConverter());

但是如果我的 someDoublePropertyReadOnlyDoubleProperty 的一个实例而不是 DoubleProperty ?

我实际上对双向绑定(bind)不感兴趣。我使用这种方法只是因为没有这样的东西
textField.textProperty().bind(someDoubleProperty, new NumberStringConverter());

我是否需要使用监听器,或者是否也有“绑定(bind)解决方案”?

有没有类似的东西
textField.textProperty().bind(someDoubleProperty, new NumberStringConverter());

在外面吗?

最佳答案

对于单向绑定(bind),您可以执行以下操作:

textField.textProperty().bind(Bindings.createStringBinding(
() -> Double.toString(someDoubleProperty.get()),
someDoubleProperty));

第一个参数是生成所需字符串的函数。如果需要,您可以在那里使用您选择的格式化程序。

第二个(以及任何后续)参数是要绑定(bind)的属性;即,如果这些属性中的任何一个发生更改,则绑定(bind)将失效(即需要重新计算)。

等效地,你可以做
textField.textProperty().bind(new StringBinding() {
{
bind(someDoubleProperty);
}

@Override
protected String computeValue() {
return Double.toString(someDoubleProperty.get());
}
});

关于java - 将 TextField 绑定(bind)到 ReadOnlyDoubleProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48580397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com