我有一个这样的控制器:绑定到对象的JavaFX的属性可以为空
public class ItemController {
@FXML TextField name;
@FXML TextField description;
private City city = null;
@FXML public void initialize() {
name.textProperty().bind(city.nameProperty());
description.textProperty().bind(city.descriptionProperty());
}
public void searchById(int idCity) {
//get a city by its id, it returns null if not found
city = Backend.getCity(idCity);
}
}
正如你所看到的城市是最初分配给空,searchById其分配到一个新的价值,我想创建一个绑定到城市的属性时,它有一个有效的价值,但它不是然后将文本属性设置为空(也许解除绑定字段,但我不知道),并禁用字段,但我没有一个好主意做到这一点,提前感谢任何帮助。
你的绑定,即使'city'不是空是行不通的:当你改变'城市“,文本字段仍然会绑定到旧城区的名称。您需要制作'city'和observable属性,并且可能使用[EasyBind](https://github.com/TomasMikula/EasyBind)或[ReactFX](https:// github)中的绑定功能等第三方绑定库的.com/TomasMikula/ReactFX)。 –