Galera estou com dificuldade em JLabel

2 respostas
F

uma coisa boa em relação ao login. Eu quero que quando o usuário logue no sistema ele pega o nome no banco de dados e altera JLabel na outra tela. porém não estou conseguindo fazer.

Estou fazendo MVC, com BEAN e DAO.

este é o método de logar na class DAO

public boolean Logar(ControlarDados dados) throws Exception {

	boolean acesso = false;

	try {

		// Login com Senha criptografada
		String senhaCriptografada = Criptografar.senhaMD5(ControlarDados.getSenha());
		String SQL = "SELECT * FROM cadastro_de_professor WHERE EMAIL =? AND SENHA =?";

		ps = conn.prepareStatement(SQL);

		ps.setString(1, dados.getLogin());
		ps.setString(2, senhaCriptografada);

		rs = ps.executeQuery();

		while (rs.next()) {
			
			dados.setNomeProfessor(rs.getString("NOME"));
			dados.setCoordenadorAtivo(rs.getString("STATUS_COORDENADOR"));
			dados.setSituacaoProfessor(rs.getString("STATUS"));
			acesso = true;

		}

		rs.close();
		ps.close();

	} catch (SQLException e) {

	}

	return acesso;

}

este é o método de logar na JFrame. sei que tem erros.

public void AcessarConta(){
	
	ControlarDados dados = new ControlarDados();
	
	try {
		
	// Envia os dados para o método Logar na class CadastroDAO
			
		AcessoDAO acesso = new AcessoDAO();
		
		dados.setLogin(txtLogin.getText());
		dados.setSenha(txtSenha.getText());

	// Verifica se um dos campos está vazios
		if(txtLogin.getText().isEmpty() || txtSenha.getText().isEmpty()){
		
		JOptionPane.showMessageDialog(this, "Por Favor, Os Campos Não Podem Ser Nulos!", "AVISO", JOptionPane.CANCEL_OPTION);
		txtLogin.requestFocus();
		
		}

	// Caso toda operação estiver correta entra no modo avaliação
		else {
		
			// Se login senha no banco ele entra em outra validação.		
		if(acesso.Logar(dados)){
			
			// Se no banco o status estiver 1 ou seja ativo ele acessa a tela principal.		
			if(dados.getSituacaoProfessor().equals("1")){
			
				new TelaPrincipal().setVisible(true);
				dispose();
			// Caso o usuario digite a senha correta, porém a o status está inativo.	
			}else{
				JOptionPane.showMessageDialog(this, "Sua Conta Está Bloqueada Por Ter Ocorrido 3 Tentativas\nEntre Em Contato com o Administrador do Sistema" 
						, "AVISO", JOptionPane.ERROR_MESSAGE);
			}
			
		}
		
		// caso o usuário erre a senha 3 vezes o status de acesso é desativado	
		else if(n == 3){
			dados.setSituacaoProfessor("0");
			acesso.Bloquear(dados);
			JOptionPane.showMessageDialog(this, "Usuário " + dados.getLogin() + " Bloqueado\nEntre em contato com o administrador do sistema" 
					, "AVISO" , JOptionPane.ERROR_MESSAGE);
		}
		
		 // Se Caso ao contrario apresenta a mensagem de erro.
		else{
			 
			JOptionPane.showMessageDialog(this, "Login ou Senha Invalida, Você Tem Mais " + quantidade + " Tentativas");
			quantidade--;
			n++;
			txtLogin.setText(null);
			txtSenha.setText(null);
			txtLogin.requestFocus();
	
		}
}
	} catch (Exception e) {
	
		JOptionPane.showMessageDialog(null, "Erro Ao Logar no Sitema\nPor Favor Entre Em Contado Com"
				+ " o Administrador do Sistema" , "AVISO", JOptionPane.INFORMATION_MESSAGE);	
		
	}
}

2 Respostas

F

Galera já consegui o que eu fiz foi assim

no JFrame

TelaPrincipal.Receber("Olá " + dados.getNomeProfessor());

e na outra tela criei um método

public static void Receber(String nome){
lblNome.setText(nome);		
}

e o JLabel em static valeu

Geison_Mancuzo

Boa tarde, eu sou novo nessa vida de programador alto nível, sempre desenvolvi para embarcado mas em baixo nível. Tenho um problema: meu produto mostra um tela na qual o usuário selecionará o box, a variável “a” está com o valor 1, quando o usuário escolhar o box 1 a variável “a” recebe 2 e durante o processo ele muda para 3 e 4 e retorna para 1. Quando a variável for igual a 1 e 4 o jLabel Box1 tem que setar o valor para BOX 1 e quando esta valer 2 ou 3 a jLabel deverá estar sumida (""). Eu tenho os método abaixo:

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        String boxS = jTextField1.getText();
            int box = Integer.parseInt(boxS);
            if (box > 0 && box <= 10) {
                switch (box) {
                    case 1:
                        a = 2;
                        atualiza();
                        break;
                    case 2:
                        .........
                       break;

public void atualiza() {
    if (a == 1 || a == 4) {
        Box1.setText("BOX 1");

    } else {
        Box1.setText("");
        }
    }

quando eu chamo o método atualiza() a partir do método TextField1ActionPerformed(java.awt.event.ActionEvent evt) beleza, o JLabel some, quando chamo esse método de qualquer outro lugar não funciona, por exemplo

public void AtualizaABC(int A, int B, int C) {
    a = A;
    b = B;
    c = C;
    atualiza();

}

desse método não atualiza o jLabel.

Poderia me ajudar, por favor.

Criado 1 de outubro de 2016
Ultima resposta 10 de fev. de 2017
Respostas 2
Participantes 2