如何正确绑定javafx标签(从fxml)到SimpleStringProperty

时间:2014-01-13 10:07:32

标签: javafx controls fxml

我有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);
   }
}

所以我的问题是如何正确地做到这一点?

1 个答案:

答案 0 :(得分:0)

由@FXML注释的所有字段都将注入由FXMLLoader创建的控制器实例中。在构造函数中,您不能使用Fields,因为此时不会注入值。使用此处显示的初始化方法:http://docs.oracle.com/javafx/2/api/javafx/fxml/Initializable.html