Olá Pessoal!
Eu tenho um método em um jInernalFrame onde retorna um objeto do tipo Funcionario e quero passar esse objeto para um jDialog. Qual seria a maneira mais correta de fazer isso?
Depende
Usando uma classe de controle, é possível transferir um objeto de uma janela para outra:
class ControleDeTelas {
Tela tela1 = new Tela(this);
Tela tela2 = new Tela(this);
void transferirObjetoParaTela2(obj) {
tela2.setObj(obj);
}
}
class Tela1 {
ControleDeTelas controle;
Button botão;
botão.addListener {
controle.transferirObjetoParaTela2(criarObj());
}
Obj criarObj() {
return new Obj();
}
}
ou usando o padrão Observer/Observable
class Tela1Model {
Observable<Obj> item;
}
class Tela1 {
Tela1Model model;
void addItemChangeListener(ChangeListener l) {
model.addItemChangeListener(l);
}
}
Tela1 tela1 = new Tela1();
Tela2 tela2 = new Tela2();
tela1.addItemChangeListener(novoObj) -> {
tela2.setObj(novoObj);
}
Usando o padrão Observer/Observable é a melhor opção na maioria dos casos.