ActionListener não recebe o evento dos botoes

boa tarde a todos ! em estudos, criei uma pequena tela de cadastro, apenas com os campos nome, telefone e pais. fiz toda a implementação do codigo conforme apostila do meu
curso, mas o que não consegui fazer foi, por exemplo, o botao gravar, fazer com que ele insira os dados nos campos, alerar, deletar etc. criei a conexao, Dao, e a view, com
apenas os 3 campos nome, telefone e pais, e os botoes gravar, deletar e excluir. pesquisei aqui no fórum, a casos semelhantes, mas a forma que estou seguindo na apostila, não
consegui encontrar o erro. outro erro também, é que na ultima classe postada, a CustomerActionListener, ele esta pedindo Try Catch , mas não entendi o porque ele pede o Try
e continuou o erro mesmo com o Try ,posto meu código. obrigado.

meu codigo CustomerForm, onde implemento os botoes e a ActionListener:


package br.com.cadastrocliente.view.controller;

import br.com.cadastrocliente.controller.customer.CustomerActionListener;
import java.awt.TextField;
import javax.swing.JTextField;

/**
 *
 * @author admin
 */
public class CustomerForm extends javax.swing.JFrame {


    private CustomerActionListener listener;


    /** Creates new form CustomerForm */
    public CustomerForm() {
        initComponents();
        init();

    }

    public void init() {

        listener = new CustomerActionListener(this);

        btCreate.addActionListener(listener);
        btUpdate.addActionListener(listener);
        btDelete.addActionListener(listener);
        btSave.addActionListener(listener);
        btCancel.addActionListener(listener);
        btSair.addActionListener(listener);
        

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        txtNome = new java.awt.TextField();
        txtPhone = new java.awt.TextField();
        txtFederalID = new java.awt.TextField();
        btCreate = new javax.swing.JButton();
        btDelete = new javax.swing.JButton();
        btUpdate = new javax.swing.JButton();
        btSave = new javax.swing.JButton();
        btSair = new javax.swing.JButton();
        btCancel = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBackground(new java.awt.Color(213, 215, 220));

        jButton1.setText("Nome:");

        jButton2.setText("Phone:");

        jButton3.setText("Federal ID :");

        txtNome.setText("textField1");

        txtPhone.setText("textField2");

        txtFederalID.setText("textField3");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(21, 21, 21)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jButton1)
                    .addComponent(jButton3)
                    .addComponent(jButton2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(txtFederalID, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(txtNome, javax.swing.GroupLayout.DEFAULT_SIZE, 474, Short.MAX_VALUE)
                    .addComponent(txtPhone, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(257, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(60, 60, 60)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(txtNome, javax.swing.GroupLayout.DEFAULT_SIZE, 28, Short.MAX_VALUE)
                    .addComponent(jButton1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(txtPhone, javax.swing.GroupLayout.DEFAULT_SIZE, 28, Short.MAX_VALUE)
                    .addComponent(jButton2))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(txtFederalID, javax.swing.GroupLayout.DEFAULT_SIZE, 28, Short.MAX_VALUE)
                    .addComponent(jButton3, javax.swing.GroupLayout.Alignment.LEADING))
                .addContainerGap(22, Short.MAX_VALUE))
        );

        btCreate.setText("Gravar");
        btCreate.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btCreateActionPerformed(evt);
            }
        });

        btDelete.setText("Deletar");

        btUpdate.setText("Alterar");

        btSave.setText("Salvar");

        btSair.setText("Sair");

        btCancel.setText("Cancelar");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(23, 23, 23)
                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(132, 132, 132)
                        .addComponent(btCreate)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(btDelete)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(btUpdate)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(btSave)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(btSair, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(btCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(49, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btCreate)
                    .addComponent(btDelete)
                    .addComponent(btUpdate)
                    .addComponent(btSave)
                    .addComponent(btSair)
                    .addComponent(btCancel))
                .addContainerGap(134, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void btCreateActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
    }                                        

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new CustomerForm().setVisible(true);
            }
        });
    }

    public TextField getTxtFederalID() {
        return txtFederalID;
    }

    public void setTxtFederalID(TextField txtFederalID) {
        this.txtFederalID = txtFederalID;
    }

    public TextField getTxtNome() {
        return txtNome;
    }

    public void setTxtNome(TextField txtNome) {
        this.txtNome = txtNome;
    }

    public TextField getTxtPhone() {
        return txtPhone;
    }

    public void setTxtPhone(TextField txtPhone) {
        this.txtPhone = txtPhone;
    }

    



    // Variables declaration - do not modify                     
    private javax.swing.JButton btCancel;
    private javax.swing.JButton btCreate;
    private javax.swing.JButton btDelete;
    private javax.swing.JButton btSair;
    private javax.swing.JButton btSave;
    private javax.swing.JButton btUpdate;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JPanel jPanel1;
    private java.awt.TextField txtFederalID;
    private java.awt.TextField txtNome;
    private java.awt.TextField txtPhone;
    // End of variables declaration                   

}



a classe CustomerService

package br.com.cadastrocliente.model.service;

import br.com.cadastrocliente.model.dao.CustomerDao;
import br.com.cadastrocliente.model.entity.Customer;
import java.sql.SQLException;

public class CustomerService {

	private CustomerDao dao;

	public CustomerService() {

		dao = new CustomerDao();

	}

	public void create(Customer customer) throws Exception {
		System.out.println("create " + customer);
		dao.create(customer);

	}

	public void update(Customer customer) throws Exception {
		dao.update(customer);

	}

	public void delete(Customer customer) throws Exception {
                 dao.delete(customer);

	}

	public Customer findById(String id) throws SQLException {

            return dao.searchById(id);
        }


//	}
}

a classe Customer:

package br.com.cadastrocliente.model.entity;

public class Customer {

	private String id;
	private String nome;
	private String telefone;
	private String federalID;

	public Customer() {

	}

	public Customer(String id, String nome, String telefone, String federalID) {
		this.id = id;
		this.nome = nome;
		this.telefone = telefone;
		this.federalID = federalID;
	}

	public Customer(String nome, String telefone, String federalID) {
		super();
		this.nome = nome;
		this.telefone = telefone;
		this.federalID = federalID;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public String getFederalID() {
		return federalID;
	}

	public void setFederalID(String federalID) {
		this.federalID = federalID;
	}

	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("Customer [id=");
		builder.append(id);
		builder.append(", nome=");
		builder.append(nome);
		builder.append(", telefone=");
		builder.append(telefone);
		builder.append(", federalID=");
		builder.append(federalID);
		builder.append("]");
		return builder.toString();
	}

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 97 * hash + (this.id != null ? this.id.hashCode() : 0);
        hash = 97 * hash + (this.nome != null ? this.nome.hashCode() : 0);
        hash = 97 * hash + (this.telefone != null ? this.telefone.hashCode() : 0);
        hash = 97 * hash + (this.federalID != null ? this.federalID.hashCode() : 0);
        return hash;
    }

        

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Customer other = (Customer) obj;
		if (federalID == null) {
			if (other.federalID != null)
				return false;
		} else if (!federalID.equals(other.federalID))
			return false;
		if (id != other.id)
			return false;
		if (nome == null) {
			if (other.nome != null)
				return false;
		} else if (!nome.equals(other.nome))
			return false;
		if (telefone == null) {
			if (other.telefone != null)
				return false;
		} else if (!telefone.equals(other.telefone))
			return false;
		return true;
	}

}

a classe CustomerDao :

package br.com.cadastrocliente.model.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;

import br.com.cadastrocliente.model.entity.Customer;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;

public class CustomerDao {

    private ConectaDao conectaDao = new ConectaDao();

	public void create(Customer customer) throws SQLException {
            PreparedStatement psm = null ;
            psm = conectaDao.getConnection().prepareStatement("Insert into Clientes (nome, telefone, federalID) values (?,?,?)");
            psm.setString(1, customer.getNome());
            psm.setString(2, customer.getTelefone());
            psm.setString(3, customer.getFederalID());
            psm.execute();
            psm.close();
            closeConnection();

	}

	public void update(Customer customer) throws SQLException  {
            PreparedStatement psm = null ;
            psm = conectaDao.getConnection().prepareStatement("Updade Clientes SET nome=? , telefone=? , federalID=?");
            psm.setString(1, customer.getNome());
            psm.setString(2, customer.getTelefone());
            psm.setString(3, customer.getFederalID());
            psm.execute();
            psm.close();
            closeConnection();
    }

	 //public void delete (Customer customer) throws SQLException {
         
         public void delete(String id ) throws SQLException {
            PreparedStatement psm = conectaDao.getConnection().prepareStatement("DELETE FROM CLIENTES WHERE federalID = ?");
            psm.setString(1, id);
            psm.executeUpdate();
            psm.close();
            closeConnection();
    }
	
	
	public Customer searchById(String id) throws SQLException {
            PreparedStatement psm = conectaDao.getConnection().prepareStatement("SELECT * FROM CLIENTES WHERE federalID = ?");
            psm.setString(1, id);
            ResultSet rset = psm.executeQuery();
            Customer customer = null;
            while ( rset.next()) {
                customer = new Customer();
                customer.setId(rset.getString(1));
                customer.setNome(rset.getString(2));
                customer.setTelefone(rset.getString(3));
                customer.setFederalID(rset.getString(4));
                break;
            }
            rset.close();
            psm.close();
            closeConnection();
            return customer;
		
	}


        public LinkedList<Customer> search(int typeSearch, String str) throws SQLException {
            LinkedList<Customer> customers = new LinkedList<Customer>();
            PreparedStatement psm = conectaDao.getConnection().prepareStatement(getSearchQuery(typeSearch));
            psm.setString(1, str);
            ResultSet rset = psm.executeQuery();
            while (rset.next()) {

                Customer customer = new Customer();
                customer.setId(rset.getString(1));
                customer.setNome(rset.getString(2));
                customer.setTelefone(rset.getString(3));
                customer.setFederalID(rset.getString(4));


            }
            rset.close();
            psm.close();
            closeConnection();
            return customers;
        }

        private String getSearchQuery (int typeSearch) {
            String sql = null;
            switch (typeSearch ) {
                case 1:
                    sql = "SELECT * FROM CLIENTES WHERE nome = ?";
                    break;

                case 2:
                    sql = "SELECT * FROM CLIENTES WHERE telefone= ?";
                    break;

                case 3:
                    sql= "SELECT * FROM CLIENTES WHERE federalID= ?";
                    break;
              }

                return sql;
        }

        private void closeConnection() throws SQLException {
            conectaDao.getConnection().close();
        }
}

a classe ConectaDao :

package br.com.cadastrocliente.model.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class ConectaDao {
    
    protected static Connection conn = null ;

    private String userName = null ;
    private String password = null ;
    private String url = null ;
    private String Driver = null ;

        public ConectaDao() {
        userName = "root";
        password = "123456";
        url = "jdbc:localhost:3306/clientes";
        Driver = "com.mysql.jdbc.Driver";

   }

        public Connection getConnection() {

            try {
                if (conn == null ) {
                    Class.forName(Driver);
                    conn = DriverManager.getConnection(url, userName, password);


                } else if (conn.isClosed()) {
                    conn = null;
                    return getConnection();
                }
            } catch (ClassNotFoundException e) {
                System.out.println("ClassNotFoundExecption: ");
                System.out.println(e.getMessage());

            } catch (SQLException e) {
                System.out.println("SQLExecption: ");
                System.out.println(e.getMessage());

            }
            return conn;

        }

        public void closeConnection() {

            if (conn !=null ) {
                try {
                    conn.close();
                } catch (SQLException e ) {

                System.out.println("SQLExecption: ");
                System.out.println(e.getMessage());

                }
           }
       }
}

a classe CustomerActionListener:


package br.com.cadastrocliente.controller.customer;

import br.com.cadastrocliente.model.entity.Customer;
import br.com.cadastrocliente.model.service.CustomerService;
import br.com.cadastrocliente.view.controller.CustomerForm;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author admin
 */

public class CustomerActionListener implements ActionListener {

    private CustomerForm form;

    private CustomerService service;



    public CustomerActionListener(CustomerForm form) {
        this.form = form;
        service = new CustomerService();

    }

    public void actionPerformed(ActionEvent event) {

       // identificar o evento executado e chamar o comando adequado.

      if ( event.getActionCommand().equals("Create")  )    {
          
                service.create(mappingFormToCustomer()); // recebe a instancia do form
           
      }  else if ( event.getActionCommand().equals("Update1")   ) {
            
                service.update(mappingFormToCustomer());
           

      } else if  ( event.getActionCommand().equals("Delete")   ) {
          
                service.delete(mappingFormToCustomer());
            

      } else if ( event.getActionCommand().equals("Find")      ) {

       //   service.findById(id)

      } else {

      }            // pode saber qual foi acionador através do getactioncomand
                   // que é o nome do label

}
    // mapear o texto do form para o nosso objeto (instancia
   public  Customer mappingFormToCustomer () {

       Customer customer = new Customer();

       customer.setNome(form.getTxtNome().getText());
       customer.setTelefone(form.getTxtPhone().getText());
       customer.setFederalID(form.getTxtFederalID().getText());

       return customer;
   }


   public void mappingCustomerToForm(Customer customer) {

       // popula os textos do db com os do form e add nos dados.
       form.getTxtNome().setText( customer.getNome());
       form.getTxtPhone().setText( customer.getTelefone());
       form.getTxtFederalID().setText( customer.getFederalID());

   }
}

[quote]ele esta pedindo Try Catch , mas não entendi o porque ele pede o Try
e continuou o erro mesmo com o Try ,posto meu código. obrigado. [/quote]
Código meio grandinho, era melhor ter posto só a última classe e os erros.Pelo que eu li a primeira vista, vc cria em CustomerService métodos de CRUD(delete,update…) disparando exceçõs neles.Aonde vc for usá-los, vc terá que tratar/regerar essas exceções.tipo em service.create(mappingFormToCustomer()); e daí por diante.

Dá uma lida com carinho aqui: