Dando o nome de JMenuItem a ele é ActionListener
Como posso dar o meuJMenuItem
s que osActionListener
anexado a eles vai olhar?
Eu tenho um sistema de menus que é tratado por um únicoActionListener
, e alguns itens desses menus duplicam os nomes. Isso não é um problema para o usuário, porque é óbvio o que faz o quê; de fato, seria mais confuso se eles tivessem nomes diferentes. No entanto, no final, desejo rotular cada item exclusivamente.
A seção que cria meus itens fica assim:
String label = getLabel(forThisItem);
JMenuItem item = new JMenuItem(label);
item.setName(parentMenu.getName() + "_" + label);
item.addActionListener(actionListener);
parentmenu.add(item);
Inrogar o item posteriormente (e fora do escopo deste método) com getName () fornece o nome que eu dei, como deveria, mas a saída de
public void actionPerformed(ActionEvent ae) {
String actionPerformed = ae.getActionCommand();
System.out.println("actionPerformed: " + actionPerformed);
}
é o nome, possivelmente duplicado, que o usuário vê, especificado porlabel
, não o nome exclusivo que eu dei a ele.
Como posso fornecer as informações corretas ao ActionListener?