Local dos Listeners

3 respostas
dfmartins

Uma dúvida básica quanto aos listeners…
Tenho uma classe controladora (implements MouseListener) e uma classe GUI (extends JPanel). O que é mais usual e aconselhado?

1–> Na classe controladora: panel.addMouseListener(this);
ou

2–> Na classe GUI: this.addMouseListener(controller);

Abraço!

3 Respostas

douglas_vidotto

e aí cara, tudo bem?? Isso depende muito. Se você possuir muitos eventos em uma só janela, fica mais difícil você verificar onde ocorreu um evento usando um só método. Usando o addActionListener(this), voce teria que fazer toda hora (caso haver varios ActionEvent na janela)

if(event.getSource() == botaoAzul)
//faz um monte de coisa

if(event.getSource() == botaoAmarelo)
//faz um monte de outras coisas

Caso você tenha um caso assim, talvez seja mais interessante separar os eventos diferentes em classes.

Se é apenas um evento, não há problema em deixar na mesma classe.

Espero ter ajudado! Abraços!

sergio_ferraz

O que o Douglas falou faz sentido. Você poderia seguir um padrão conhecido como MVP(Model View Presenter), ele desacopla a view da lógica de apresentação(Presenter). Você poderia definir cada listener em uma classe separada, a depender da complexidade. O presenter, por sua vez ficaria
escutando a view(separada por uma interface) e atuaria sobre ela e a camada de acesso a dados.

sergio_ferraz

Uma boa fonte de informação: http://martinfowler.com/eaaDev/uiArchs.html 8)

Criado 5 de fevereiro de 2009
Ultima resposta 6 de fev. de 2009
Respostas 3
Participantes 3