Na criação de um sistema de login, para persistir os dados do usuário sem ser no JavaFx, se passa o usuário logado para outra tela assim :
PrincipalView principal = new PrincipalView(usuarioM);
Assim podendo manipular em outra tela esse usuário, verificando se ele é um administrador e habilitando todos componentes para ele, por exemplo.
Minha dúvida é, como manipular esses dados em JavaFx, passar o usuário para outro controlador e fazer verificações no Initialize?
Dentro do “outro controlador”, você pode criar um metodo tipo setInit( controlador_primeiro )
Eu não costumo usar Initialize e sim um metodo proprio com os parametros desejados.
Não sei como é sua implementação, mas segue essa lógica ai.
Controller1
private Usuario usuario;
public void setUsuario(Usuario usuario){
this.usuario = usuario;
}
Controller2
Usuario usuario = new Usuario();
usuario.setUsuarioNome("João");
Controller1 controller = new Controller1();
controller.setUsuario(usuario);
Agora… Se sua duvida for em relação a como capturar um controller do JavaFX via FXMLLoader em tempo de execução é assim:
Usuario usuario = new Usuario();
usuario.setNome("João");
FXMLLoader loader = new FXMLLoader("Controller1.fxml"));
Parent root = (Parent) loader.load();
Controller1 controller = (Controller1) loader.getController();
controller.setUsuario(usuario);
controller.verificaUsuario();
Perceba que em tempo de execução o controller só passou a existir aqui:
Parent root = (Parent) loader.load();
Até tem como criar Classes que extendam do seu controller e tenham esse parâmetro no construtor… mas vai por mim, isso é uma bosta pra que tá aprendendo. Captura o controller em tempo de execução, seta o usuario, e manda verificar é bem mais fácil…