Java tutorial
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; public class Test extends JFrame { JPopupMenu menu = new JPopupMenu("Popup"); class MyLabel extends JLabel { public MyLabel(String text) { super(text); addMouseListener(new PopupTriggerListener()); } class PopupTriggerListener extends MouseAdapter { public void mousePressed(MouseEvent ev) { if (ev.isPopupTrigger()) { menu.show(ev.getComponent(), ev.getX(), ev.getY()); } } public void mouseReleased(MouseEvent ev) { if (ev.isPopupTrigger()) { menu.show(ev.getComponent(), ev.getX(), ev.getY()); } } public void mouseClicked(MouseEvent ev) { } } } JLabel label = new MyLabel("right-click"); public Test() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuItem item = new JMenuItem("Test1"); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("Menu item Test1"); } }); menu.add(item); item = new JMenuItem("Test2"); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("Menu item Test2"); } }); menu.add(item); getContentPane().add(label); pack(); setSize(300, 100); } public static void main(String[] args) { new Test().setVisible(true); } }