GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

JavaFx, problemas com persistência de dados


#1

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?


#2

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.


#3

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…