Olá a todos do fórum, dei uma pesquisada aqui no fórum mas não encontrei nada relacionado com minha dúvida. Bem vamos a ela:
Estou desenvolvendo uma aplicação aqui e faço uso de JPopupMenu, o que muda é que a quantidade de itens podem variar, ou seja, os jMenuItem podem ser adicionados dinamicamente pelo usuário. Testei primeiro em hardcode para ver se estou seguindo o caminho certo, o problema é na hora do evento. No caso se eu clicar em um dos menus do popup será feita uma substituição em uma String de um TextArea (conforme observado no código abaixo), o que estou enfrentando é que somente o último ActionPerformed é disparado em todos.
Segue trecho do código:
[code]//Adicionando MenuItem ao Popup
for (int i = 0; i < 5; i++) {
item = new JMenuItem("<TAG-[" + i + "]><TAG/>");
//evento de cada menuItem
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
if (!jTextArea2.getSelectedText().isEmpty()) {
//Ações de processamento da String
StringBuilder texto = new StringBuilder(jTextArea2.getText());
String selecionado = jTextArea2.getSelectedText();
selecionado = Text(item) + selecionado + Text(item);
texto.replace(jTextArea2.getSelectionStart(), jTextArea2.getSelectionEnd(), selecionado);
jTextArea2.setText(texto.toString());
}
}
});
jPopupMenu1.add(item);[/code]
A pergunta: como faço para que cada item se comporte como desejado? sei que se a quantidade de menuItem fosse estática eu programaria o evento para cada, mas como fazer isto para o cenário exposto?
Grato a atenção.
P.S. se postei no lugar errado desculpem-me o erro.