Eventos do Mouse!

0 respostas
S

Boa Tarde a todos!

Bom estou tentando tirar o tratamento dos eventos do form, colocando-os em uma classe separada e tratando os eventos gerados na classe de negócio!

Eu consegui fazer esse esquema funcionar, para os botões (ActionListener) o que não estou conseguindo é para os demais eventos, Mouse, teclado, etc…

Segue a classe…

package br.com.sisestagioII.visao;

import java.awt.event.*;
import java.awt.Window;
import java.util.*;


public class ActionSupport implements ActionListener{
    
    private Window window;
    
    /** Creates a new instance of ActionSupport */
    public ActionSupport(Window window) {
        this.window = window;
    }

    private List<ActionListener> listeners = new ArrayList<ActionListener>();
    
    public void addActionListener(ActionListener listener) {
        listeners.add(listener);
    }
    
    public void removeActionListener(ActionListener listener) {
        listeners.remove(listener);
    }
    
    
    public void fireActionEvent(ActionEvent e) {
        Iterator<ActionListener> it = listeners.iterator();
        while (it.hasNext()) {
            ActionListener listener = it.next();
            listener.actionPerformed(new ActionEvent(window, ActionEvent.ACTION_PERFORMED, e.getActionCommand()));
        }
    }

    public void actionPerformed(ActionEvent e) {
        fireActionEvent(e);
    }

  
}

Na classe do formulário faço uma referência a classe ActionSupport, e digo que o btnIncluir que essa classe é que vai escutar seus eventos!

private ActionSupport actionSupport = new ActionSupport(this);    

   
    public void addActionListener(ActionListener listener){
        actionSupport.addActionListener(listener);
    }
    
    public void removeActionListener(ActionListener listener){
        actionSupport.removeActionListener(listener);
    }
    
    btnIncluir.addActionListener(actionSupport);
public class EstadoBO implements  GenericDAO, ActionListener, MouseListener{
   
    private Estado     modelo;
    private FormEstado visao;
    private int        id;

public EstadoBO(FormEstado visao, int id){
    this.visao=visao;
    this.id=id;
    visao.addActionListener(this);
}


public void actionPerformed(ActionEvent e) {        
       try{
           if (e.getActionCommand().equals("incluir")){
               id=0;
               visao.controlaBotoes("Incluir");
               Repositorio.limpaJTextFields(visao.getComponents());
               
           }
......
....

Dessa forma eu consigo controlar os eventos dos botões a partir da classe de negócio, agora não estou conseguindo fazer isso para os demais eventos…

Se alguém puder ajudar!

Obrigado

Diego

Criado 20 de agosto de 2006
Respostas 0
Participantes 1