为了账号安全,请及时绑定邮箱和手机立即绑定

SWT 文本中的上下文菜单的子菜单

SWT 文本中的上下文菜单的子菜单

桃花长相依 2022-07-27 21:51:20
我想要一个带有简单子菜单的弹出菜单。右键单击SWT 文本( commandText)。我想要实现的是:A -> D     E     FBC所以在动作“A”下应该有动作“D,E,F”。“B”和“C”是顶层的动作,就像“A”一样。我的尝试是:private void addCommandTextContextMenu() {    MenuManager popupMenu = new MenuManager("#PopupMenu");    popupMenu.setRemoveAllWhenShown(true);    popupMenu.addMenuListener(new IMenuListener() {        public void menuAboutToShow(IMenuManager manager) {            Action aAction = new Action("A") {};            Action bAction = new Action("B") {};            Action cAction = new Action("C") {};            manager.add(aAction);            manager.add(bAction);            manager.add(cAction);        }    });    MenuManager subMenu = new MenuManager("#SubMenu");    subMenu.setRemoveAllWhenShown(true);    subMenu.addMenuListener(new IMenuListener() {        public void menuAboutToShow(IMenuManager manager) {            Action dAction = new Action("D") {};            Action eAction = new Action("E") {};            Action fAction = new Action("F") {};            manager.add(dAction);            manager.add(eAction);            manager.add(fAction);        }    });    popupMenu.add(subMenu);    final Menu menu2 = popupMenu.createContextMenu(commandText);    commandText.setMenu(menu2);}我只能看到A、B、C。我尝试使用 Java 为 Eclipse 插件添加此弹出菜单,只是因为我认为它应该比在 plugin.xml 中使用命令和处理程序定义菜单更容易。
查看完整描述

1 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

只需创建子菜单并将子菜单操作直接添加到子菜单:


    public void menuAboutToShow(final IMenuManager manager) {


        final Action bAction = new Action("B") {};

        final Action cAction = new Action("C") {};

        final Action dAction = new Action("D") {};

        final Action eAction = new Action("E") {};

        final Action fAction = new Action("F") {};


        final MenuManager subMenu = new MenuManager("A");


        subMenu.add(dAction);

        subMenu.add(eAction);

        subMenu.add(fAction);


        manager.add(subMenu);


        manager.add(bAction);

        manager.add(cAction);

    }

将子菜单管理器添加到顶级管理器。子菜单管理器的名称用于顶级菜单项。


查看完整回答
反对 回复 2022-07-27
  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信