Boa tarde,
Estou tentando criar uma classe Singleton para Usuário, pois necessito do seguinte cenário: Após o usuário logar no sistema, na janela principal quero setar um label com o nome do usuário que está logado; quando esse mesmo usuário for preencher um formulário de atividades, o combobox do seu setor onde ele trabalha, já deve vir preenchido conforme o setor desse usuário.
Porém, não estou conseguindo fazer a lógica de utilizar o singleton, que é a maneira mais rápida e fácil para pegar esses dados.
Minhas Classes:
-
Usuário
public String nome;
public Setor setor;
public String matricula;
private String senha;public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public Setor getSetor() { return setor; } public Setor setSetor(Setor setor) { this.setor = setor; return setor; } public String getMatricula() { return matricula; } public void setMatricula(String matricula) { this.matricula = matricula; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; }
-
Classe LoginController
@FXML
public void entrar() {
usuario = bd.getUsuarioMatricula(loginTextField.getText());if (loginTextField.getText() == null && senhaTextField.getText() == null) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro de Usuário"); alert.setHeaderText("Login e Senha em branco..."); alert.setContentText("Entre em contato com a GETIG para dúvidas"); alert.showAndWait(); return; } else if (usuario != null) { if (!BCrypt.checkpw(senhaTextField.getText(), usuario.getSenha())) { Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setHeaderText("Login ou Senha não conferem, tente novamente\n"); alert.setContentText("Entre em contato com a GETIG para dúvidas"); alert.setTitle("Dados de Login não conferem"); alert.showAndWait(); System.out.println("Erro"); } else { System.out.println("Usário logado com sucesso!"); try { abrirSistema(); } catch (IOException e) { e.printStackTrace(); } } } else { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro de Usuário"); alert.setHeaderText("Login não existe..."); alert.setContentText("Entre em contato com a GETIG para dúvidas"); alert.showAndWait(); } }