Vários menus com um único listener

Olá, como posso tratar os eventos de vários menus com uma única classe interna que implementa ActionListener, eu tinha tentado utilizar e.getSource() para identificar o menu clicado, mas não tive sucesso. Obrigado.

Não faça isso. Você só vai dificultar a sua vida. Cria um listener separado para cada evento.

Concordando com o @rmendes08, você realmente necessita disso?

Olá, estou fazendo isso, porém tenho eventos que fazem pouca coisa (como alterar o nome de um JButton). Queria economizar código, para não ter que ficar digitando:

class AlterarNome implements ActionListener { public void actionPerformed(ActionEvent e) { // código... } }

Para todo evento que eu criar. Por isso, queria fazer uma única classe que identificasse o menu clicado e fazer tal coisa:

class FazAlgo implements ActionListener { public void actionPerformed(ActionEvent e) { // identifica o botão e faz o que é específico dele... } }

A IDE já economiza bastante digitação para você. Melhor ter métodos pequenos de forma que cada um faça uma única tarefa do que ter um método monstro que faça tudo (que aliás, é o pior pesadelo para quem faz manutenção de código).

Se você não usar muito essa classe “FazAlgo” vc pode simplesmente colocar em uma classe anonima

algumObjeto.setEvent((ActionEvent e) -> { // identifica o botão e faz o que é específico dele... }

ou ainda, p ficar menor, caso seja apenas uma linha de instrução, vc pode usar

algumObjeto.setEvent((e) -> // identifica o botão e faz o que é específico dele...

isso no java 8