import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
 
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JSeparator;
 
public class MenuPopUp implements MouseListener 
 
{
    // Declara Componentes
    JLabel titulo;
    JLabel rodape;
    JPanel painel;
    JPopupMenu pMenu;
    JMenuItem item;
     
    // Declara variaveis
    String acao = "Você clicou no: ";
     
    // Declara painel
    public Container criaPainel()
    {
        // Cria painel
        painel = new JPanel(new BorderLayout()); 
        painel.setOpaque(true);
         
        // Cria Labels
        titulo = new JLabel("Clique com o botão direito no formulario");
        rodape = new JLabel(acao);
         
        // Cria layout
        painel.add(titulo, BorderLayout.PAGE_START);
        painel.add(rodape, BorderLayout.PAGE_END);
         
        // Cria popupmenu
        pMenu = new JPopupMenu();
         
        // Cria itens do menu e eventos
        item = new JMenuItem("Item 1");
        item.addActionListener(new ActionListener() {
             
            @Override
            public void actionPerformed(ActionEvent arg0)
            {
                 
                rodape.setText(acao + "Item 1");
                 
            }
        });
         
        pMenu.add(item);
         
        item = new JMenuItem("Item 2");
        item.addActionListener(new ActionListener() {
             
            @Override
            public void actionPerformed(ActionEvent arg0)
            {
                 
                rodape.setText(acao + "Item 2");
                 
            }
        });
         
        pMenu.add(item);
         
        // Cria separador
        pMenu.add(new JSeparator());
         
        item = new JMenuItem("Item 3");
        item.addActionListener(new ActionListener() {
             
            @Override
            public void actionPerformed(ActionEvent arg0)
            {
                 
                rodape.setText(acao + "Item 3");
                 
            }
        });
         
        pMenu.add(item);
         
        painel.addMouseListener(this);
         
         
        return painel;
    }
     
    // Declara GUI
    public static void criaGUI()
    {
        // Cria formulario
        JFrame formulario = new JFrame("PopUp Menu");
        formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         
        // Cria classe popupmenu
        MenuPopUp menu = new MenuPopUp();
         
        // Adiciona painel ao formulario
        formulario.setContentPane(menu.criaPainel());
         
        // Adiciona propriedades ao formulario
        formulario.setSize(400, 300);
        formulario.setVisible(true);
         
    }
 
 
    // Cria Eventos para o mouse
 
    @Override
    public void mouseClicked(MouseEvent arg0) {
        // TODO Auto-generated method stub
         
    }
 
    @Override
    public void mouseEntered(MouseEvent arg0) {
        // TODO Auto-generated method stub
         
    }
 
    @Override
    public void mouseExited(MouseEvent arg0) {
        // TODO Auto-generated method stub
         
    }
 
    @Override
    public void mousePressed(MouseEvent arg0)
    {
        // verifica se o evento foi disparado no painel 
        if (arg0.getSource() == painel )
        {
            pMenu.show(painel, arg0.getX(), arg0.getY());
        }
         
    }
 
    @Override
    public void mouseReleased(MouseEvent arg0) {
        // TODO Auto-generated method stub
         
    }
     
    // Cria GUI
    public static void main(String[] args)
    {
     
        javax.swing.SwingUtilities.invokeLater(new  Runnable() {
             
            @Override
            public void run()
            {
                criaGUI();          
                 
            }
        });
 
    }
 
}