需求如题,解决方法如下:
有两种方法:第一种,定义一个方法,返回一个Menu
// 右键菜单
private Menu createPopup(Composite parent) {
final Composite container = new Composite(parent, SWT.NONE);
final Menu p = new Menu(container.getShell(), SWT.POP_UP);
final MenuItem parameter = new MenuItem(p, SWT.PUSH);
parameter.setText("参数维护");
parameter.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
//在这里写上你右键菜单要做的事情
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
return p;
}
然后在你需要添加右键菜单的地方:XXX.setMenu(createPopup(shell));
第二中方法:定义一个Action
public class FilterAllAction extends Action {
public FilterAllAction() {
super("右键菜单");
}
public void run() {
//在这里写上你右键菜单要做的事情
}
}
然后:
final MenuManager menu = new MenuManager();
menu.add(new FilterAllAction());
Menu m = menu.createContextMenu(shell);
然后在你需要添加右键菜单的地方:XXX.setMenu(m);
// 右键菜单
private Menu createPopup(Composite parent) {
final Composite container = new Composite(parent, SWT.NONE);
final Menu p = new Menu(container.getShell(), SWT.POP_UP);
final MenuItem parameter = new MenuItem(p, SWT.PUSH);
parameter.setText("参数维护");
parameter.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
//在这里写上你右键菜单要做的事情
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
return p;
}
然后在你需要添加右键菜单的地方:XXX.setMenu(createPopup(shell));
第二中方法:定义一个Action
public class FilterAllAction extends Action {
public FilterAllAction() {
super("右键菜单");
}
public void run() {
//在这里写上你右键菜单要做的事情
}
}
然后:
final MenuManager menu = new MenuManager();
menu.add(new FilterAllAction());
Menu m = menu.createContextMenu(shell);
然后在你需要添加右键菜单的地方:XXX.setMenu(m);