Problema na passagem de String

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


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
} 

Classe 2


public void metodoSecundario(String pegouCrm);  //string que recebe o parametro

{

this.pegacrm = pegouCrm; //Passando o valor do parametro para uma variavel declarada

}

Acontece que a variável vem Null, já tentei de diversas maneiras que encontrei no fórum e não rolou, as duas classes são públicas.

Please Help me!!!

Grato,

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.

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


public class login extends javax.swing.JFrame {



    public login() {

        initComponents();

    }


       public  void passaCrm(){

           String CadastroSQL = "select crm,nome,pass,tipo from system_cad where nome=? AND pass=?";

        try{

            this.Conexao = (Connection) fabricaConexao.abreConexao();

            PreparedStatement ps = (PreparedStatement) Conexao.prepareStatement(CadastroSQL);

            ps.setString(1,campoLogin.getText());

            ps.setString(2,campoSenha.getText());

            ResultSet rs = ps.executeQuery();

            while(rs.next()) {

                this.crmLoginPega = rs.getString("crm");

                this.nomeLoginPega = rs.getString("nome");

                this.tipoLoginPega = rs.getString("tipo");



       String crm;

       String nome;

       String tipo;

       crm = this.crmLoginPega;

       nome = this.nomeLoginPega;

       tipo = this.tipoLoginPega;

       formCadAnalise referencia = new formCadAnalise();

       referencia.metodoSecundario(crm,nome,tipo);

            }

        }

            catch(SQLException e){

            e.printStackTrace();
 }





   }....................



public class formCadAnalise extends javax.swing.JInternalFrame {



        public String pegaCrm;

        public String pegaNome;

        public String pegaTipo;



    /** Creates new form formCadAnalise */

    public formCadAnalise() {



        initComponents();

    }



    public void metodoSecundario(String pegouCrm, String pegouNome, String pegouTipo){



          this.pegaCrm = pegouCrm;

          this.pegaNome = pegouNome;

          this.pegaTipo = pegouTipo;

       

    }...............

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

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.
[]…

Valew cara vou fazer os testes!

O 2º argumento está nulo, pois você está sobreescrevendo apenas o 1º.