Gostaria de saber qual a maneira mais eficiente para se trabalhar com eventos:
Classes internas,
Eventos anônimos?
exemplo atualmente eu estava usando anônimos, agora fiz com uma classe internas depois tive que por muitos if, mas não sei se é a melhor maneira , ou se existe algum melhor?
Cara… Tô usando classe interna… Tem realmente muitos if, mas não tenho problema. Eu os organizo, por exemplo:
// ---------------------------- CADASTRO
if (e.getSource() == btFuncao) { /* método de outra classe */ }
// ---------------------------- RELATORIOS
e por aí vai. Separo em sessoes os meus if, então ficam organizados. Claro que fica com muitos, mas tem problema não. kk
Na minha opinião, vc deve usar o que for mais confortável para vc, eu faria por classes externas.
Mas vc pode criar classes especializadas para tratamento de eventos, algo assim:
public class TratadorDeEventos {
HashMap<Object, Comando> mapaDeComandos = new HashMap<>();
public void executarEvento(Event e) {
Comando c = mapaDeComandos.get(e.getSource());
c.executar(e);
}
void putComando(Object o, Comando c);
}
Sim.
Eu faço os eventos sempre internamente… Não coloco em classe separada… Mas acho que isso vai de cada um… rs Faço assim porque eu sei quais eventos vão ter ali. Exemplo: uma classe Tela_CadastroPessoa vai ter um botão de inserir registro no meu banco. Esse evento eu coloco na própria classe Tela_CadastroPessoa e mantenho isso como padrão para as outras classes que eu tiver no meu package. Sempre assim:
Classe 1 com seus métodos e eventos, JInternalFrame, etc
Classe 2 com querys referentes à Classe 1