我尝试了以下语句:
movieTextField.textProperty().bindBidirectional(new SimpleStringProperty(YIFY.getPeliculaBuscada(), "peliculaBuscada"));
成为movieTextField
JavaFXTextField
并YIFY.getPeliculaBuscada()
返回String
。
在调用的那一刻,getPeliculaBuscada
有一个初始化的String,但是TextField没有显示任何内容。
我该怎么做?
带有SimpleStringProperty
两个参数的构造函数(请参阅Javadocs)采用对象,该对象是属性的所有者和属性的名称。这些参数都不是参数的初始值,null
默认情况下为初始值。
要创建StringProperty
具有所需价值的商品,您可以执行以下操作
movieTextField.textProperty().bindBidirectional(new SimpleStringProperty(YIFY.getPeliculaBuscada()));
但是,这实际上并不会做任何事情,只是会初始化文本字段中的文本:它在功能上等同于
movieTextField.setText(YIFY.getPeliculaBuscada());
原因是文本字段中的文本已绑定到StringProperty
您不再引用的文本上。因为您没有对的引用StringProperty
,所以没有其他更改方式,因此绑定到它的文本没有任何意义。另一方面,如果文本字段中的文本发生更改,则将更新StringProperty;否则,将更新StringProperty。但是由于您没有引用它,因此您无法观察到这种变化。
您可能正在寻找的是YIFY
使用实例作为实例的类,StringProperty
并通过StringProperty peliculaBuscadaProperty()
方法将其公开。那你会做movieTextField.textProperty().bind(YIFY.peliculaBuscadaProperty());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句