JpopupMenu - Exemplo

Estou estudando o JPopupMenu, e desenvolvi o código abaixo, eh assim a forma correta de se construir um JPopupMenu? porém na parte do actionPerformed ele não chama as funçoes (por exemplo ele não escreve na tela “itemArquivo”):

if ( evento.getSource() ==  itemArquivo) { 
             //executa uma função  
             PopupTeste p1 = new PopupTeste();
            JOptionPane.showMessageDialog(p1,"Itemarquivo","Arquivo	",
	  	JOptionPane.INFORMATION_MESSAGE); 
	  	      System.out.println("itemArquivo");

o que eu estou fazendo de errado??? qual a correçaõ?

segue abaixo o código completo, pois acho q isso deve ajudar muita gente tbm q quer trabalhar com JPopupMenu

import java.io.*;
import java.util.*; 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PopupTeste extends JFrame { 
   
   private JPopupMenu pop; 
    
   JMenu menu = new JMenu("File"); 
   JMenuItem itemArquivo = new JMenuItem("Arquivo"); 
   JMenuItem itemSair = new JMenuItem("Sair"); 
   JMenuItem Sobre = new JMenuItem("Sobre Menu"); 
    
   public PopupTeste () { 
       
      super("Popup Menu"); 
       
      Pegador peg = new Pegador(); 
       
      ButtonGroup carros = new ButtonGroup(); 
      pop = new JPopupMenu(); 
              
      pop.add(menu); 
      pop.add(Sobre);
      pop.add("ajuda");
      
      menu.add(itemArquivo);
      menu.add(itemSair);
                  
      addMouseListener( 
          
         new MouseAdapter() { 
          
            public void mousePressed(MouseEvent evento) { 
                
               checkForTriggerEvent(evento); 
                
            }//Fim de mousePressed 
            
            public void mouseReleased(MouseEvent evento) { 
                
               checkForTriggerEvent(evento); 
                
            }//Fim de mouseReleased 
             
                         
            private void checkForTriggerEvent(MouseEvent evento) { 
                
               if ( evento.isPopupTrigger() ) 
                  pop.show( evento.getComponent(), evento.getX(), evento.getY() ); 
                
            }//Fim de checkForTriggerEvent 
          
         }//Fim de MouseAdapter 
          
      ); 
       
      setSize(300, 200); 
      show(); 
       
   }//Fim do construtor 
    
   public static void main (String args[]) { 
       
      PopupTeste aplic = new PopupTeste(); 
      aplic.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       
   }//Fim de main 
    
   private class Pegador implements ActionListener { 
       
      public void actionPerformed(ActionEvent evento) { 
          
          if ( evento.getSource() ==  itemArquivo) { 
             //executa uma função  
             PopupTeste p1 = new PopupTeste();
            JOptionPane.showMessageDialog(p1,"Itemarquivo","Arquivo	",
	  	JOptionPane.INFORMATION_MESSAGE); 
	  	      System.out.println("itemArquivo");
	  	      
               
            } 
          
           
          if ( evento.getSource() ==  itemSair) { 
             //executa uma função  
               
            }   
            
          if ( evento.getSource() ==  Sobre) { 
             //executa uma função  
               
            }  
            
          if ( evento.getSource() ==  "ajuda") { 
             //executa uma função  
               
          } 
                      
      }//Fim de actionPerformed 
       
   }//Fim da classe interna 
    
}//Fim da classe 

Agradeço a ajuda de vcs

tente o seguinte:

\ ... menu.add(itemArquivo); itemArquivo.addActionListener(peg); \ adiciona esse cara aqui... \...

Adicione ActionListeners especificos pra cada JMenuItem :wink: