Estou fazendo um sistema e pretendo usar o MVC.
Estou criando os Menus.
Preciso separar também o código dos eventos dos Menus?
Vc quer dizer eventos da sua GUI né?
Crie uma classe(uma por tela,quero dizer) só para a aparência e outra para implementar os eventos criando uma instância dessa classe de aparência no controlador, como o Destro fez aqui:
http://www.guj.com.br/posts/list/20776.java
Dica do Tio Iron:
Cuidado ao criar inúmeras innerclasses, pois haverão um maior número de objetos em memória e atrasará o tempo de início de execução da sua aplicação, pois o “footprint”, que é o tamanho de memória mínimo inicial para execução de seu programaserá maior, além daquela poluição visual de possuir trocentas inner classes… 
O que eu posso fazer, para não ter inúmeras inner classes?
O meu menu (swing) poderá ficar grande, com o tempo.
Além disso, outras classes que serão controladoras, terão que tratar muitos eventos.
Vc pode “proceduralizar”(Ughh…) o seu código criando um grande método actionPerformed cheio de if-elses e mandar seu perfeito isolamento de código pro caramba e tornando seu código mais difícil de ler! 
Infelizmente, não há como ter um perfeito estado entre as melhores práticas de programação e performance.Tenta-se um equilíbrio entre elas.
Antes de tentar isolar tudo, fazer tudo bunitim, pense simples.Pense em interfaces.Saia abstraindo, pensando nos requisitos de seu sistema, para depois ligar para patterns,e sopas de letrinhas.Depois pense nas necessidades de seu Cliente.Se o Desempenho for fundamental(para mim é…), mande o “puro mvc”-para mim é utópico!para não dizer gambiarrento…-, e as tantas camadas para as cucuias, pois o cliente não quer saber se vc usou a-b ou c, java ou fortran.
Uma boa classe controladora apenas filtra as solicitações q passam por ela e determina(ok,delega seria a melhor palavra), qual ação executar.
Para ajudar a dar uma “organizada no código”, leia sobre os padrões Command e Observer, aqui no guj possui tutoriais sobre eles.Mas lembre-se q não são perfeitos… 