Olá pessoal.
Estou usando Genesis para desenvolvimento de um programa em desktop.
Verifiquei como é realmente fácil invocar um método a partir de um botão, apenas colocando o nome do método anotado na classe que utilizo como form na propriedade “name” do botão da minha GUI e assim prencher os campos que estão na tela (supondo que estivesse fazendo o select de um registro numa tabela do BD).
Agora o problema é: Como eu faria para popular tabelas ou combos, ou ainda , preencher os campos de dados na GUI a partir de um outro evento que não seja o clicar de um botão. Por exemplo, suponha que eu tenha na tela um campo para pesquisa chamado código do produto e tivesse mais outros campos com outros detalhes do produto. Daí, então, eu colocaria o código do produto no campo apropriado e no momento em que tal campo perder o foco (com um TAB, ou com o clique do mouse em outro lugar) o método de pesquisa fosse chamado e então os campos correspondentes aos detalhes de tal produto fosse populado.
Estou com grande dificuldade para fazer isto, mesmo usando um exemplo como aquele citado na documentação do Genesis :
[color=darkred]public class ExemploInvokeFormActionView extends JFrame {
private ExemploInvokeFormActionForm form;
private SwingBinder binder;
public ExemploInvokeFormActionView() {
// lógica de inicializacao
binder = new SwingBinder(this, form = new ExemploInvokeFormActionForm());
binder.bind();
}
public void selecionaIndicesFinanceiros() throws Exception {
BigDecimal indice = //… obtem o indice a partir do input de outra
// janela, por exemplo
form.setIndice(indice);
ActionInvoker.invoke(form, “recalculaTotais”);
// Ou, da mesma forma:
// binder.invokeAction(“recalculaTotais”);
}
// …
}[/color]
No caso usei o exemplo acima como base para a minha aplicação. Na minha aplicação o método que estaria no lugar do [color=darkblue]public void selecionaIndicesFinanceiros() [/color]citado no exemplo é chamado a partir de um evento sobre o campo código do cliente quando este perde o foco.
Alguem poderia me ajudar ??
Desde já agradeço a atenção