当我右键单击按钮时打开上下文菜单。我将如何做到这一点。我也尝试这个代码
MenuManager menuManager = new MenuManager();
Menu menu = menuManager.createContextMenu(btn.getText());
btn.getText().setMenu(menu);
getSite().registerContextMenu(menuManager, btn);
getSite().setSelectionProvider(btn);
我在createContextMenu中遇到了问题。请帮帮我
答案 0 :(得分:2)
createContextMenu
需要Control
作为参数,您传递按钮文字String
。 setMenu
方法也属于Control
。所以:
MenuManager menuManager = new MenuManager();
Menu menu = menuManager.createContextMenu(btn);
btn.setMenu(menu);
getSite().registerContextMenu(menuManager, btn);
Button
未实现ISelectionProvider
,因此如果您想将该按钮用作选择提供程序,则必须编写一个。
请注意,零件只能注册一个这样的上下文菜单,并且零件只能有一个选择提供者。
如果您希望将Eclipe其他部分的上下文菜单贡献添加到菜单中,您必须添加以下行:
menuManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));