Eventos em Java
02 Setembro, 2007
Eu procurei recentemente no google sobre como lançar eventos no Java, pois o C# (CSharp) tem uma forma bonitinha de lançar eventos, mas minha pesquisa não obteve muito sucesso.
Eis que um amigo meu sabia e é algo fácil, porém não tão bonito como no CSharp.
Basicamente o lançador de evento deve ter uma List de ActionListener (List<ActionListener>) e um método addActionListener público, para quem quiser “ouvir” o evento.
E quando você quiser chamar o evento, você percorre essa lista chamando o método actionPerformed de cada ActionListener. Simples, Não?
Exemplo:
ClasseLançadoraDeEventos(){
private List<ActionListener> lista = new LinkedList<ActionListener>();
public void addActionListener(ActionListener listener){ lista.add(listener); }
public void metodoQueLançaEvento{
for(ActionPerformed ac : lista) ac.actionPerformed();
}
}
MeuListener implements ActionListener(){
ClasseLançadoraDeEvento lançadora = new ClasseLançadoraDeEvento();
public MeuListener(){
lançadora.addActionListener(this);
}
private void actionPerformed(){
// método a ser executado quando a Classe Lançadora de Eventos lançar o evento
}
No fundo é apenas uma convenção, a classe lançadora sempre chama o método actionPerformed dos objetos ActionListener que ela tiver. Qualquer um poderia criar uma interface com um método próprio e fazer algo análogo ao que foi dito acima.
25 Maio, 2009 at 7:38 pm
Ótimo tutorial!!!
Também procurei isso d+, e não achei.
Agora tenho um problema, queria lançar um evento só que quando o usuário pressionasse alguma tecla.
Estou estudando J2ME, e tem um componente lá, o TextBox, e ele não tem um forma de pegar eventos quando o usuário pressiona uma tecla, queria criar uma classe filha dessa que fosse capaz de lançar eventos quando o usuário clicasse, e informá-lo sobre a quantidade de dígitos que já foram inseridos.
Se puder me ajudar agradeço!!!