我有以下課程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
提交
取消