我试过这句话:
movieTextField.textProperty().bindBidirectional(new SimpleStringProperty(YIFY.getPeliculaBuscada(), "peliculaBuscada"));
成为movieTextField
JavaFX TextField
和YIFY.getPeliculaBuscada()
返回String
。
在通话时,getPeliculaBuscada
有一个初始化的字符串,但TextField没有显示任何内容。
我怎样才能完成它?
答案 0 :(得分:1)
带有两个参数的SimpleStringProperty
构造函数(请参阅Javadocs)获取属性所有者的对象以及属性的名称。这些参数都不是参数的初始值,默认情况下为null
。
要创建具有所需值的StringProperty
,您可以执行
movieTextField.textProperty().bindBidirectional(new SimpleStringProperty(YIFY.getPeliculaBuscada()));
然而,这并不是真的会做任何事情,其他的是在文本字段中初始化文本:它在功能上等同于
movieTextField.setText(YIFY.getPeliculaBuscada());
原因是文本字段中的文本绑定到您不再具有引用的StringProperty
。因为您没有引用StringProperty
,所以没有其他方法可以更改它,因此文本中没有任何关系可以绑定它。另一方面,如果文本字段中的文本发生更改,则StringProperty将更新;但由于你没有提及它,你无法观察到这种变化。
您可能正在寻找的是让YIFY
是一个实例的类使用StringProperty
并通过StringProperty peliculaBuscadaProperty()
方法公开它。那你就做movieTextField.textProperty().bind(YIFY.peliculaBuscadaProperty());