Object JAVAFX-在控制器之间共享对象

Object JAVAFX-在控制器之间共享对象,object,controller,javafx,share,Object,Controller,Javafx,Share,请说明如何在控制器之间共享对象用户?我有一个控制器。在初始化过程中,使用对象用户向其他控制器发送数据。没关系,但在舞台展示之前我无法接近这个物体 当控制器在阶段之前加载时,它可能在控制器中的初始化方法中访问阶段?或者如何在加载器中处理WindowsShow(当windows显示时,对象用户已填充) 面板内动作控制器 @Override public void initialize(URL url, ResourceBundle resourceBundle) { System.out.p

请说明如何在控制器之间共享对象用户?我有一个控制器。在初始化过程中,使用对象用户向其他控制器发送数据。没关系,但在舞台展示之前我无法接近这个物体

当控制器在阶段之前加载时,它可能在控制器中的初始化方法中访问阶段?或者如何在加载器中处理WindowsShow(当windows显示时,对象用户已填充)

面板内动作控制器

@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());