gracias por tu ayuda, te comento lo que hice antes de ver el codigo de nuevo, he sacado todos las escuchas de los botones y los puse dentro de la propia vista con un metodo que pasa por parametro un Controlador . de esta manera
public void controladorVista (Controlador c){
btndelete.addActionlistener(c);
btnadd.addAactionlistener(c);
}
este metodo lo llamo del main