Просто используйте один менеджер меню.Не создавайте Менеджер меню динамически.
в теории. Возможно, вы пробовали, но это неэффективно и не является общим способом.
Просто создайте Менеджер меню и добавьте все необходимые действия.
когда выбор был изменен, вызовите Action # setVisible (true | false), чтобы скрыть или показать пункты меню.Вы также можете использовать Action # setEnable для включения / выключения пункта меню.
пс.Менеджер меню не является графическим интерфейсом меню (например, TreeViewer - это не дерево)
Он добавляет Действия (бизнес-логику) в Меню (SWT).И это также управляет видимостью и активацией.Мы называем это менеджер вкладов.Мы можем создать меню SWT очень легко с этим.(даже если мы не знаем о SWT, нам нужно знать только нашу бизнес-логику: Действие) Это фундаментальная идея в JFace.
Когда вы добавляете действие в менеджер manu, оно будет заключено в ActionContributionItem.Он перехватывает состояние действия для обновления пользовательского интерфейса (видимость, включение меню, кнопки, панели инструментов и т. Д.).Он также перехватывает пользовательский интерфейс для запуска действия при его нажатии.
Если вы новичок в затмении, легко спутать роль SWT и JFace.