jTextField de Form para uma classe

8 respostas
felipe_thrash

Ola amigos,

sou iniciante em java e no fórum, e gostaria que me ajudassem em um probleminha… seguinte:

Tenho um formulario de autenticação onde passo usuario e senha, daí quero passar o que contem nos jTextFields para uma classe, ja tentei get e set … mas na classe retorna null…
obs.: passei os jTextField para Public

sobre 2 jTextFields, onde autentico no banco MySQL:

codigo do form:

public String login = new String(jTextField1.getText()); 
public String senha = new String(jTextField2.getText()); 

public void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {      

ClassConectar auth = new ClassConectar();
        auth.setLogin(login);
        auth.setSenha(senha);                                   
       
        
    try{
    ClassConectar conecta = new ClassConectar();
    
    conecta.conexao();
    }catch (Exception ex) {   
            ex.printStackTrace();   
        }
    }

código da minha classe:

public class ClassConectar {
    
    public String login;
    public String senha;
    public String _login;
    public String _senha;
    
    public static void main(String[]args){
    try{       
    ClassConectar teste = new ClassConectar();
    teste.conexao();
    
    }catch (Exception ex) {   
            ex.printStackTrace();   
        }
}
   
    public Connection con = null; 

    public void conexao()throws SQLException {
 
    DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/menagerie",getLogin(),getSenha());
    if(!con.isClosed()){
          System.out.println("Conectado " +
          "MySQL server  "+ getLogin() +"   "+ getSenha() +" ");
        }
    
    } 
    
    public ClassConectar() {
    }
  
    public void setLogin(String _login){
        this.login = _login;    
    }    
    public void setSenha(String _senha){
        this.senha = _senha;
    }  
    
    public String getLogin(){
        return this.login;
    }    
    public String getSenha(){
        return this.senha;
    }

}

Alguem me dá uma ajuda ??

desde já agradeço senhores,

Felipe

8 Respostas

Marky.Vasconcelos

tenta isso

public void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {      
 
 ClassConectar auth = new ClassConectar();
         auth.setLogin(jTextField1.getText()); 
         auth.setSenha(jTextField2.getText());                                
        
         
     try{
     ClassConectar conecta = new ClassConectar();
     
     conecta.conexao();
     }catch (Exception ex) {   
             ex.printStackTrace();   
         }
     }
felipe_thrash

deu nada… ainda ta retornando null … não passa para a classe d jeito nenhum…

esse encapsulamento q fiz ta correto mesmo ???

axo que, quando instanciamos a classe para uma new classe, os dados dos jTextFields desaparecem…

estou quebrando a kbeça…

mais alguma luz ??

Att,

Felipe

G

Estou curioso em saber porque você instancia 2 vezes a mesma classe:

ClassConectar auth= new ClassConectar();
         auth.setLogin(login);
         auth.setSenha(senha);                                   
        
         
     try{
     ClassConectar conecta= new ClassConectar();
conecta.conexao();

Pelo que pude perceber, você esta passando os valores para auth, mas esta querendo usar esses valores em conecta?

felipe_thrash

Baianage total… hehehe… tava jogando uns watchs no codigo aí fui fazendo umas besteiras com o código…

pelo que testei, não posso instanciar nenhuma vez se eu quiser preservar os dados dos campos !!!

tem algum jeito de passar, sem instanciar ???

desde já agradeço senhores,

Felipe

G

Isso resolveria? Ve certinho e da um toque ai

public String login = new String(jTextField1.getText()); 
 public String senha = new String(jTextField2.getText()); 
 
 public void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {      
 
 ClassConectar auth = new ClassConectar();
         auth.setLogin(login);
         auth.setSenha(senha);                                   
        
         
     try{      
     auth .conexao(); 
     }catch (Exception ex) {   
             ex.printStackTrace();   
         }
     }
felipe_thrash

foi foi foi…

consegui rodar…

vc tava certo gustavo_apsilva … era só o conecta mesmo…

o codigo certo do botao fica assim:

public void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
           
    try{
    ClassConectar conecta = new ClassConectar();
    conecta.setLogin(jTextField1.getText()); 
    conecta.setSenha(jTextField2.getText());
    conecta.conexao();
    }catch (Exception ex) {   
            ex.printStackTrace();   
        }
    }

Valeu e muito obrigado pessoal!

G

felipe_thrash:

pelo que testei, não posso instanciar nenhuma vez se eu quiser preservar os dados dos campos !!!
Felipe

Não é bem assim.
Você instanciou o objeto na memória uma vez, com o nome de auth, entao fi reservado um espaço em memória para ele e para as variaveis e objetos da classe.

Quando você instanciou com outro nome, (conecta), o objeto auth continua lá, só que você nao tinha os valores dele no objeto conecta, somente no objeto auth, ja que são 2 espaços de memória totalmente distintos.

felipe_thrash

Valew mesmo!

valew pela explicação… e tb foi bobeira minha ali…

os kras desse forum são lokos!!!

Hail to the Java Developers!

Criado 2 de julho de 2007
Ultima resposta 2 de jul. de 2007
Respostas 8
Participantes 3