Object JAVAFX-在控制器之间共享对象
请说明如何在控制器之间共享对象用户?我有一个控制器。在初始化过程中,使用对象用户向其他控制器发送数据。没关系,但在舞台展示之前我无法接近这个物体 当控制器在阶段之前加载时,它可能在控制器中的初始化方法中访问阶段?或者如何在加载器中处理WindowsShow(当windows显示时,对象用户已填充) 面板内动作控制器Object JAVAFX-在控制器之间共享对象,object,controller,javafx,share,Object,Controller,Javafx,Share,请说明如何在控制器之间共享对象用户?我有一个控制器。在初始化过程中,使用对象用户向其他控制器发送数据。没关系,但在舞台展示之前我无法接近这个物体 当控制器在阶段之前加载时,它可能在控制器中的初始化方法中访问阶段?或者如何在加载器中处理WindowsShow(当windows显示时,对象用户已填充) 面板内动作控制器 @Override public void initialize(URL url, ResourceBundle resourceBundle) { System.out.p
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
System.out.println(loggedInUser); // NULL..
}
当我按下stage中的任何按钮时,loggedUser不为null。但我需要在初始化期间按用户角色(管理员、用户)设置按钮和文本字段。解决:
1。在主选项卡面板控制器中插入控制器
@FXML
private ActionController panelActionController;
@FXML
private StoreController panelStoreController;
@FXML
private ProfilesController panelProfilesController;
@FXML
private UsersController panelUsersController;
在fxml中,必须有一个根元素(例如GridPane),带有fx:id=“panelAction”。
控制器必须名称:fx:GridPane的id+word控制器:panelActionController
@FXML
private ActionController panelActionController;
@FXML
private StoreController panelStoreController;
@FXML
private ProfilesController panelProfilesController;
@FXML
private UsersController panelUsersController;
2。我在主选项卡PanelController中为所有子控制器编写getter:
public ActionController getActionController() {
return panelActionController;
}
public StoreController getStoreController() {
return panelStoreController;
}
public ProfilesController getProfilesController() {
return panelProfilesController;
}
public UsersController getUsersController() {
return panelUsersController;
}
actionController.setComponentsByRole(loggedInUser.getRole());
3。在主选项卡PanelStage(这里有Object loggedInUser)中获取所有控制器
TabPanelController tabPanelController = fxmlLoader.getController();
ActionController actionController = tabPanelController.getActionController();
StoreController storeController = tabPanelController.getStoreController();
ProfilesController profilesController = tabPanelController.getProfilesController();
UsersController usersController = tabPanelController.getUsersController();
4。然后:
public ActionController getActionController() {
return panelActionController;
}
public StoreController getStoreController() {
return panelStoreController;
}
public ProfilesController getProfilesController() {
return panelProfilesController;
}
public UsersController getUsersController() {
return panelUsersController;
}
actionController.setComponentsByRole(loggedInUser.getRole());