Passar variavel como parametro para outra classe,seria a solução?

8 respostas
leandrovrb

Ola pessoal.
EStou com dificuldades em resolver uma situação e gostaria de ajuda,por gentileza.

Tenho duas classes,Cidade e Pessoa, sendo que quando clico no campo textField do formulario pessoa chama o formulario Cidade onde escolho a cidade, porém nao consigo retornar este codigo para o formulario pessoa,na verdade tenho um método em Cidade que faz isto:

public class Cidade extends javax.swing.JFrame {
 public cadastroCidade() { 
        initComponents();


public void getCampoTexto()
{
     cadastroPessoa pes = new cadastroPessoa();
     pes.setCid_codigo("5");
     JOptionPane.showMessageDialog(null, pes.getCid_codigo());
 
}
}

Entao o JoptionPane exibe corretamente o valor,porem quando fecho a Classe cidade,e acesso a variavel que esta setada no cadastro pessoa fica Null.

Formulario que recebe o codigo da cidade:

public class Pessoa extends javax.swing.JFrame {
 public  cadastroPessoa() {
     initComponents();


 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         

      JOptionPane.showMessageDialog( null,getCid_codigo()); // Evento que exibe o codigo do formulario Cidade
       
    }                                        


    public void setCid_codigo(String CodigoCidade) {
        
        this.CodigoCidade = CodigoCidade;
        tfCidade.setText(CodigoCidade);
    }

Oque esta errado ou faltando?Vlw

8 Respostas

ruben_m

Bom a maneira mais simples que tem de fazer isso é passar as variaveis que queres passar ao outro formulario Por Parametro do construtor

Ou seja declare as variaveis no outro formulario e as passe no no parametro do outro Construtor

leandrovrb

Estou fazendo isto porem da erro de compilação,parece que nao acha depois o construtor da classe e pede para criar,erro : Cannot Find Simbol ,Symbol:Construtor CadastroPessoa().

Coloquei o construtor que vai receber assim:
public String CodigoCidade;

 public  cadastroPessoa(String CodigoCidade) {
    this.CodigoCidade=CodigoCidade;
    initComponents();
o erro aparece abaixo na linha 5:
public static void main(String args[] ) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new cadastroPessoa().setVisible(true);
            }
        });

Utilizo Netbeans,tem alguma coisa a ver?
Obrigado

ruben_m
leandrovrb:
Estou fazendo isto porem da erro de compilação,parece que nao acha depois o construtor da classe e pede para criar,erro : Cannot Find Simbol ,Symbol:Construtor CadastroPessoa(). Coloquei o construtor que vai receber assim:
public String CodigoCidade;

 public  cadastroPessoa(String CodigoCidade) {
    this.CodigoCidade=CodigoCidade;
    initComponents();
o erro aparece abaixo na linha 5:
public static void main(String args[] ) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new cadastroPessoa().setVisible(true);
            }
        });

Utilizo Netbeans,tem alguma coisa a ver?
Obrigado

Faça assim:
public static void main(String args[] ) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new cadastroPessoa(null).setVisible(true);
            }
        });

O problema é que voçe tem um parametro no construtor que não chega a passar! então com Null é resolvido o problema

ruben_m
leandrovrb:
Estou fazendo isto porem da erro de compilação,parece que nao acha depois o construtor da classe e pede para criar,erro : Cannot Find Simbol ,Symbol:Construtor CadastroPessoa(). Coloquei o construtor que vai receber assim:
public String CodigoCidade;

 public  cadastroPessoa(String CodigoCidade) {
    this.CodigoCidade=CodigoCidade;
    initComponents();
o erro aparece abaixo na linha 5:
public static void main(String args[] ) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new cadastroPessoa().setVisible(true);
            }
        });

Utilizo Netbeans,tem alguma coisa a ver?
Obrigado

Faça assim:
public static void main(String args[] ) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new cadastroPessoa(null).setVisible(true);
            }
        });

O problema é que voçe tem um parametro no construtor que não chega a passar! então com Null é resolvido o problema

ruben_m

não esqueça de por uma anotação de override antes do metodo run

leandrovrb

Colocando null dentro de new cadastroPessoa(),nao chama nullo nao??? é oque esta ocorrendo aqui

public static void main(String args[] ) {  
        java.awt.EventQueue.invokeLater(new Runnable() {  
  
            public void run() {  
                new cadastroPessoa(null).setVisible(true);  
            }  
        });

o codigo abaixo foi implementada na classe receptora,e nao deu certo,esta vindo null.

porém se eu chamo o método pela classe cidade pegando o codigo que esta na classe CadastroPessoa pega o valor corretamente

private cadastroCidade cc;
 public  cadastroPessoa(cadastroCidade codigoCidade) {
  this.cc=codigoCidade;
   initComponents();

Não sei oque esta ocorrendo que quando fecho o form cadastroCidade o form CadastroPessoa perde o valor da variavel e teria que ficar armazenado na variavel que criei!
Não esta dando certo!
codigo abaixo é da classe cadastroCidade,este código seta o método da classe CadastroPEssoa:

public void CampoTexto()
{
     cadastroPessoa pes = new cadastroPessoa(this);
     pes.setCid_codigo("5");
     pes.setCid_codigo(campoTexto);
     JOptionPane.showMessageDialog(null, pes.getCid_codigo(campoTexto));

}

Obrigado pela atenção

ruben_m

não esse null e por causa dos parametros que teu construtor chama.
se não quizeres fazer null teras de fazer uma sobrecarga do teu construtor.

podes mandar me o projecto , assim é mais facil entender

leandrovrb

Ruben,enviei o projeto para seu email da hotmail que esta cadastrado no seu perfil como msn.
Voce verá que nao consigo passar a variavel codigo da cidade para a Pessoa.
Obrigado pela ajuda desde já

Criado 28 de agosto de 2011
Ultima resposta 1 de set. de 2011
Respostas 8
Participantes 2