[RESOLVIDO]Dúvidas para chamar método para outra Classe

4 respostas
P

Estou com um problema no meu código. Sou iniciante em Java, mas já aprendi bastante tentando desenvolver esta aplicação na empresa onde trabalho.
Já tentei toda lógica possível sem sucesso.
A variável que armazenar o valor na Classe A (TelaLogin), e tento puxar para a Classe B (TelaFinal), não vem preenchida, sempre retornar vazia.
Já validei todos os métodos presente aqui e não consegui ainda resolver meu problema.
Segue o código da TelaLogin que é a tela com a variavel que tento puxar para o outro JFrame (TelaFinal) e não vai com o valor inputado. Retornar vazio quando chamo a varivável.
public void Logar () {

//Validar se campo usuárion e senha vazios
     if(txt_login.getText().equals("") || pass_field_senha.getText().equals("")){
     JOptionPane.showMessageDialog(null,"Campo Usuário ou Senha vazio.\nFavor preencher!");
     }else{      
         
         try {
             // Validar Usuário e Senha no BD
            conn = conexao.getConnection();
            sent = conn.createStatement();
           String SQL = "Select usr_login, usr_senha from usr where usr_login = '"+ txt_login.getText()+"' and usr_senha = '"+ pass_field_senha.getText()+"';";
           //Armazena o resultado da Consulta da variavel SQL 
           ResultSet rs = sent.executeQuery(SQL);

           //Percorrendo o ResultSet e obtendo os valores do banco, caso for TRUE
           if (rs.next()==true) {      
                         
           //Condição se campo Usuário e Senha são iguais ao encontrado no DB
           JOptionPane.showMessageDialog(null,"Login efetuado! ","Acesso Garantido", JOptionPane.INFORMATION_MESSAGE);
           // this.dispose();//Fecha a janela
             Final jfinal =new Final();
              jfinal.setVisible(true);
           }else{

           //Condição se campo Usuário ou Senha não for encontrado no DB      
           JOptionPane.showMessageDialog(null,"Usuário ou senha incorreto.","Login",JOptionPane.QUESTION_MESSAGE);
               }
             
    }catch(SQLException e){              
        JOptionPane.showMessageDialog(null,"Erro na conexão com Banco de Dados","SQL Error",JOptionPane.WARNING_MESSAGE); 
                          }   
       
        }
      this.usuario = txt_login.getText();

}

public String getUsuario(){

return this.usuario;

}

Também tentei puxar através da classe publica criada para armazenar essa variável no Jframa(TelaFinal)

Final jfinal =new Final();

jfinal.usuario = this.usuario;

Já tentei utilizar GET E SET, sem sucesso também. De forma alguma ele mantem o valor da variavel quando chamo no outro frame.
Alguém consegue me ajudar?

4 Respostas

Jonas_B_a_r_r_o_s

Tente clolocar a variavel usuario como static, não crie um novo objeto para instancia-la. Use assim:
TelaFinal.usuario

A

Se eu entendi certo, você quer passar os dados do usuário
para a tela do Menu Principal.

Para isso, você deve colocar um construtor no frame TelaPrincipal.

Ex:Public TelaPrincipal(String usuario){ }

E quando você for chamar a telaPrincipal,
você chama assim:

TelaPrincipal tela = new TelaPrincipal(); tela.setvisible(true);

Espero que seja isto que esteja procurando

D

Olá

Faltou passar o usuario

this.usuario = txt_login.getText();
Final jfinal =new Final(this.usuario);
jfinal.setVisible(true);
P

Jonas, muito obrigado pela dica. Resolvi meu problema com duas coisas que não havia me atentado:

Declaração de Static na variável local
setVisible(true) variavel da classe principal - Ajuda do diego.

Gostei mesmo deste forum, ajuda muito.TOP

Vlw. Resolvido. o problema.

Criado 5 de maio de 2016
Ultima resposta 6 de mai. de 2016
Respostas 4
Participantes 4