我有以下课程public class InitialSetupWizardData { private final SimpleStringProperty licence_type = new SimpleStringProperty(this,"licenceType",""); public String getLicence_type() { return licence_type.get(); } public SimpleStringProperty licence_typeProperty() { return licence_type; } public void setLicence_type(String licence_type) { this.licence_type.set(licence_type); }}现在我想将它注入我的 javafx 控制器。我添加了以下内容public class Controller implements Initializable { @Inject InitialSetupWizardData data; @Override public void initialize(URL location, ResourceBundle resources) { data.setLicence_type("Am cool"); }}上面总是在 data.set 抛出一个空指针异常......我在使用谷歌果汁库时错过了什么
1 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
注射不会自动发生。对于控制器对象FXMLLoader创建,注入不会发生。
要更改此设置controllerFactory,请在加载 fxml 时使用。以下示例需要Injector以正确创建控制器类实例的方式进行设置:
Injector injector = ...
FXMLLoader loader = new FXMLLoader(url);
loader.setControllerFactory(injector::getInstance);
Parent parent = loader.load();
添加回答
举报
0/150
提交
取消