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.

One Response to “Eventos em Java”

  1. Vantuil Oliveira Says:

    Ó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!!!


Leave a Reply