Olá galera, estou com um probleminha quando vou trabalhar com tratamento de eventos usando menus, ou melhor, um menuitem dentro do outro. Sei tratar do menu e menuitem, porém quando um menuitem esta dentro de outro menuitem e este tem que ser tratado aparece a dificuldade.
Num programinha que estou desenvolvendo eu adicionava um action listener para cada elemento do menu para fazer o que devia.
Alterei essa lógica. Talvez sirva para você também.
Cada ação do menu é ligada a uma classe que extende a classe AbstractAction. Como esse programa também possui uma barra de ferramentas, cada botão na barra também é ligado à mesma ação do menu. Assim ao desativar determinada ação, desativo no menu e na barra.
O tratamento é feito em outra classe, mas poderia ser dentro de cada ação.