FigureCanvas fc; // contains figures. Menu menu = new Menu (fc.getShell(), SWT.POP_UP); // for leaf menu item MenuItem itemA = new MenuItem(menu, SWT.PUSH); itemA.setText("ItemA"); itemA.addListener(SWT.Selection, new Listener() { // swt.widget.Listener implementation }); // for hierarchical menu item MenuItem itemB = new MenuItem(menu, SWT.CASCADE); itemB.setText("ItemB"); Menu subMenuB = new Menu(fc.getShell(), SWT.DROP_DOWN); itemB.setMenu(subMenuB); itemB.addListener(SWT.Show, new Listener() { MenuItem item = new MenuItem(subMenuB, SWT.PUSH); ... });