Olá!
Acredito que seja uma pergunta simples de responder, utilizo o Netbean, tenho duas classes , tenho uma váriavel na classe 1 e quero passar essa váriavel para a classe 2, estou tentando passar essa várivel
por parametro de um método
Olhem o código:
Classe 1
publicvoidpassacrm(){
Stringcrm;crm=this.crmLogin//AquitenhoainformaçãodoLogin.
formCadAnalisereferencia=newformCadAnalise(); //chamando a classe 2 referencia.metodoSecundario(crm); //passando o parametro crm
}
Na tua classe 2 você colocou dois pontos depois da declaração do método, sendo que ali vão somente as chaves. Ainda na classe 2, o atributo “pegacrm” não foi declarado.
marcel_sanches
Desculpa a cabaçada dos sinais ae, é que acabei digitando errado, agora a variavel eu não tinha declarado agora declarei dá uma olhada no código:
Classe 1
publicclassloginextendsjavax.swing.JFrame{publiclogin(){initComponents();}publicvoidpassaCrm(){StringCadastroSQL="select crm,nome,pass,tipo from system_cad where nome=? AND pass=?";try{this.Conexao=(Connection)fabricaConexao.abreConexao();PreparedStatementps=(PreparedStatement)Conexao.prepareStatement(CadastroSQL);ps.setString(1,campoLogin.getText());ps.setString(2,campoSenha.getText());ResultSetrs=ps.executeQuery();while(rs.next()){this.crmLoginPega=rs.getString("crm");this.nomeLoginPega=rs.getString("nome");this.tipoLoginPega=rs.getString("tipo");Stringcrm;Stringnome;Stringtipo;crm=this.crmLoginPega;nome=this.nomeLoginPega;tipo=this.tipoLoginPega;formCadAnalisereferencia=newformCadAnalise();referencia.metodoSecundario(crm,nome,tipo);}}catch(SQLExceptione){e.printStackTrace();}}....................
Dei um println nas variáveis da classe 1, ela me traz a string, mais na 2 ela chega nula, não sei o que faço. Alguma ídeia
Grato
F
fernandes-man
Antes de mais nada você não acha que seria mais interessante não criar essa variável local, pois dessa forma acaba sendo redundânte com o código.
Faz o seguinte ao invés de ter uma String crm recebendo o this.crmLoginPega, passe o seu objeto direto ao método que quer preencher com os dados.
//Troque esse método :
public void passa crm() {
String crm;
crm = this.crmLogin //Aqui tenho a informação do Login.
formCadAnalise referencia = new formCadAnalise(); //chamando a classe 2
referencia.metodoSecundario(crm); //passando o parametro crm
}
//Por esse aqui:
public void passa crm() { //Dessa forma você poderá ajudar o garbage collector...
new formCadAnalise().metodSecundario(this.crmLogin);
}
E Coloca em modo debug e adiciona uns breakpoints e vai analisando o fluxo até chegar na classe dois, porque se os dados
estão na sua classe um, olhando assim eles teriam que setar a sua varíavel this.pegacrm.
[]…
marcel_sanches
Valew cara vou fazer os testes!
U
utroz
O 2º argumento está nulo, pois você está sobreescrevendo apenas o 1º.