我有Controller处理由Scene Builder创建的UI的动作。 现在,当我尝试将此UI中的标签绑定到Controllers构造函数内的SimpleTextProperty时,我得到了nullpointer异常。显然,productInfoLabel尚未实例化。我应该在哪里绑定这些而不是构造函数? 这是我的代码
public class Controller {
@FXML
public TableView receiptTable;
@FXML
public TextField productCodeTextField;
@FXML
public Label productInfoLabel;
private StringProperty stringProperty = new SimpleStringProperty();
public Controller() {
productInfoLabel.textProperty().bind(stringProperty);
}
}
所以我的问题是如何正确地做到这一点?
答案 0 :(得分:0)
由@FXML注释的所有字段都将注入由FXMLLoader创建的控制器实例中。在构造函数中,您不能使用Fields,因为此时不会注入值。使用此处显示的初始化方法:http://docs.oracle.com/javafx/2/api/javafx/fxml/Initializable.html