Preciso de ajuda:
Estou trabalhando em uma aplicação desktop. e preciso pegar um objeto de um form em outro form.
Tenho um objeto cliente no form frmCadCliente, dou um setVisible false e chamo um frmFiltroCliente de onde pego o objeto cliente (instanciado em frmCadCliente) usando o metodo getCliente do frmCadCliente.
Após isto chamo o frmPrincipal, e de onde preciso pegar o mesmo objeto cliente instanciado… como posso fazer isto? Alguém tem alguma idéia?
Bom… com isso vc vai ter a instancia do frmCadCliente lá na sua classe frmFiltroClient e vai poder acessar os objetos da classe frmCadCliente…
OBS: eu digitei os codigos apenas pra exemplificar e podem existir erros de digitação que não compilariam… Utilize-os apenas como ilustração do que eu estava dizendo
S
SergioJunior
cara beleza… assim funciona… mas meu problema eh diferente… nao me expressei direito…
tenho 3 forms (e eles sao instaciados na seguinte sequencia.
frmPrincipal > frmClienteCad >filtroCliente.
o frmClienteCad instancia o “cliente” e quando instancio o filtroCliente utilizao o metodo getCliente para pegar o objeto neste novo form… Após isto dou um setVisible(false) no filtroCliente e retorno ao meu frmPrincipal (que já instanciado)… mas como posso pegar o objeto cliente no frmPrincipal, se ele já esta instanciado… nao tenho como passar o frm no construtor dele pois ele jah esta instanciado…
Valeu!!!
shison
Olá, também não sei se é a resposta mais elegante porém funciona.
Você pode passar a referência do frmPrincipal em frente até chegar no filtroCliente. Então deste último, chame um método previamente definido em frmPrincipal que recebe a referência do Cliente.
ex:
class frmPrincipal {
public void resposta(Cliente cliente_) { ... }
private void abreClienteCad() { new frmClienteCad(this); }
}
class frmClienteCad {
private frm;
public frmClienteCad(frmPrincipal frm_) { frm = frm_ }
private void abreFiltro() { new filtroCliente(frm); }
}
class filtroCliente {
private frm;
public frmClienteCad(frmPrincipal frm_) { frm = frm_ }
private voltaPrincipal(Cliente cliente_) { frm.resposta(cliente_); }
Seguindo esta lógica você pode gerar uma classe abstrata para extender todos os forms, e já definir o atributo da tela anterior e o método resposta que invés de receber um Cliente pode receber um Object, que então é só usar casts ou aplicar o Generics.
Aí é com você =)
shison
poxa essa caixinha do code já era assim mesmo? tá maneirinha destaca até palavras reservadas