我无法让这个工作,所以我认为在这里张贴可能是一个明智的想法......
我在SWT中有一个上下文菜单(实际上它是一个Eclipse插件)。它是一个级联菜单,因此只要您将鼠标悬停在某个条目上,它就会立即扩展...
我的问题是,我想在菜单上附上一个小图标,但我很挣扎!
代码: ....
manager.add(new Separator());
// icon for the "change color" menu
ImageDescriptor icon = ImageDescriptor.createFromFile(null,
"icons/palette_brush.png");
// submenu
MenuManager colorMenu = new MenuManager("Menu", icon, null);
// Actions
colorMenu.add(someAction);
// add the action to the submenu
manager.add(colorMenu);
....
我的问题是,新的MenuManager 可以使用2个参数(无附加图像)或3个(带附加图像)调用。图像应作为 ImageDescriptor 传递。
问题基本上是:
“我如何从图像中获取Imagedescriptor?”
也许这是一个愚蠢的错误 - 但我无法从图像文件中获取ImageDescriptor。我有一个* .png图标可供使用,但我很难加入这个。
如果有人可以帮助解决一个片段,那么从图像文件中得到一个 ImageDescriptor ,这将是太棒了!
最好的问候!
MenuManager文档:
MenuManager Docu
答案 0 :(得分:13)
Bundle bundle = Platform.getBundle(pluginId);
URL fullPathString = BundleUtility.find(bundle, "icons/palette_brush.png");
ImageDescriptor.createFromURL(fullPathString);
pluginId
是您放置图标的插件的ID。
答案 1 :(得分:1)
Bundle bundle= org.eclipse.core.runtime.Platform.getBundle(pluginId);
URL fullPathString = bundle.getEntry("icons/palette_brush.png");
desc= ImageDescriptor.createFromURL(fullPathString);
desc.createImage();