JPopupMenu com itens dinamicos

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.

Uma forma bem bobinha de fazer isso é criar uma classe separada (não anônima) que implemente o ActionListener, e em cujo construtor você passe, por exemplo, o índice do item do menu que você criou. Aí para cada item você associa uma instância diferente dessa classe.

Uma boa alternativa, vou implementar aqui, depois posto o resultado ou venho com mais dúvidas.

Grato.