Если вы динамически создаете объекты, то вам нужно создать универсальных слушателей. Эти слушатели должны быть созданы вне цикла и доступны всем созданным вами компонентам.
Кроме того, JPopuMenu предназначен для использования с JMenuItmes. Значки поддержки JMenuItem и добавление ActionListener в элемент меню для обработки щелчка мыши по элементу.
Так что обычный слушатель будет выглядеть примерно так:
ActionListener al = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
JMenuItem menuItem = (JMenuItem)e.getSource();
System.out.println( menuItem.getName() );
}
}
Вы создаете слушателя до того, как начнете код зацикливания.
Затем в вашем цикличном коде вы делаете что-то вроде:
while(resultSet.next())
{
JMenuItem menuItem = new JMenuItem(...);
...
Integer id = resultSet.getInt("item_id");
menuItem.setName(id.toString());
menuItem.addActionListener( al );
}