Um botão no InternalFrame (FCadFun) chama um JFrame (FConCep) de consulta CEP.
Este JFrame possui uma tabela (tbCep) que mostra os resultados filtrados.
Ao clicar na linha da minha JTable (tbCep), uma variável (id) recebe o CEP.
Quero fazer um campo (txCEP) lá no InternalFrame receber o que está na variável id,
que é o cep da linha selecionada.
Mas quando tento fazer o seguinte código:
private void txOkActionPerformed(java.awt.event.ActionEvent evt) {
new FCadFun();
FCadFun.txCEP.setText(id);
}
Aparece uma exclamação :!: vermelinha dizendo o seguinte:
Está dizendo que o campo que você está tentando passar o valor tem acesso private, ou seja, diretamente você não consegue passar a informação.
E essa janela que você esta tentando mandar já está aberta ou você vai abri-lá?
Porque senão, dessa maneira, não funcionará. Você criará outro objeto na memória e portanto, serão dois pontos totalmente diferentes na memória. O que você pode fazer é usar a mesma referencia de um para o outro.
Estou tentando pegar o Campo CEP da tabela CEP (resultado de uma filtragem) e passar esse resultado
para o campo CEP do formulário FCadFun (Frame Cadastro de Funcionários).
Esse valor está em uma consulta feita em um Frame e quero levar esse valor para um campo jTextField
de um Internal Frame que já está criado, pois é através do Internal Frame de cadastro de funcionários
que abro o Frame para consulta do CEP.
1 - Clicar no campo que você quer que o outro Frame tenha acesso
2 - Na janela ‘Propriedades’, clicar em ‘Código’
3 - Na Classe ‘Modificadores de Variáveis’, clicar no botão ‘…’
4 - Na janela que abriu, alterar o acesso para ‘public’ e marcar a caixa ‘estático’
Pronto! Já pode setar as propriedades do Item através de outra janela…bom,
pelo menos só testei isso com a propriedade Text.
[quote=brunokchimbo]Estou tentando pegar o Campo CEP da tabela CEP (resultado de uma filtragem) e passar esse resultado
para o campo CEP do formulário FCadFun (Frame Cadastro de Funcionários).
Esse valor está em uma consulta feita em um Frame e quero levar esse valor para um campo jTextField
de um Internal Frame que já está criado, pois é através do Internal Frame de cadastro de funcionários
que abro o Frame para consulta do CEP.
ps: não entendi[/quote]
Um exemplo pra você entender que os objetos, independendo de serem criados da mesma forma, em cada lugar que for criado, cada um terá um valor diferente.
class A {
public String nome;
}
class B {
public String nome;
A a = new A();
a.nome = "Gleidson";
}
class Principal {
public String nome;
B b = new B(); //Isso cria um objeto na memoria e dentro dele tem um objeto A
A a = new A(); //Aqui cria um objeto na memoria do tipo A
System.out.println(a.nome); //Aqui ele vai mostrar o objeto do tipo A desta classe, nao da outra.. Os valores são diferentes
}
Para pegar o valor da classe A através da classe B, poderia fazer o seguinte
class B {
public String nome;
A a = new A();
a.nome = "Gleidson";
public A retornaA(){
return a;
}
}
class Principal {
public String nome;
B b = new B();
A a = b.retornaA(); //Retorna a referencia de A na memoria para esse A desta classe
System.out.println(a.nome);
}