gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 01:36:49 26 4
gpt4 key购买 nike

我想要一个带有简单子(monad)菜单的弹出菜单。右键单击 SWT Text (commandText)。我想要实现的是:

A -> D
E
F
B
C

所以 Action “A”下应该有 Action “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 中定义菜单更容易。

最佳答案

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

    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);
}

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

关于java - SWT 文本中上下文菜单的子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55119205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com