右键菜单的代码与其他的menu代码类似,只是在初始化的时候给出不同的SWT的style。 import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; public class MenuTest { static Display display = new Display(); static Shell shell = new Shell(display); /* * 创建多级菜单, 采用SWT.CASCADE样式值可以加入子菜单,采用SWT.PUSH样式值不可以加入子菜单 */ public static void createMenu() { shell.setSize(500, 500); shell.setText("menu test window"); //shell.setImage(new Image(display, "images/Home.png")); // 通过shell对象和SWT.BAR样式值来创建一个菜单条 Menu menu = new Menu(shell, SWT.BAR); // 在菜单条的基础之上创建一个File的菜单 MenuItem file = new MenuItem(menu, SWT.CASCADE); file.setText("&File"); // 先在Shell上创建一个下拉框,然后将下拉框添加到File菜单上 Menu filemenu = new Menu(shell, SWT.DROP_DOWN); file.setMenu(filemenu); // 在下拉框上创建菜单项Open final MenuItem openItem = new MenuItem(filemenu, SWT.CASCADE); openItem.setText("&Open"); // 在shell上创建一个下拉框,并把它加到open菜单上 Menu childmenu = new Menu(shell, SWT.DROP_DOWN); openI