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