需求如题,解决方法如下:
有两种方法:第一种,定义一个方法,返回一个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);
本文介绍两种在SWT框架下实现右键菜单的方法:一是通过定义并返回一个Menu对象,二是利用Action类配合MenuManager创建上下文菜单。这两种方法均可有效实现自定义功能。
199

被折叠的 条评论
为什么被折叠?



