繁体   English   中英

用于自定义对话框的Eclipse插件设置图像图标

[英]Eclipse Plugin Set Image icon for a custom dialog

我制作了一个自定义的Eclipse插件,该插件使用并显示多个对话框,我想知道是否可以将左上角的图标图像设置为该icons文件夹中使用的icons 我想获取并设置该图标,而不是Eclipse使用的默认图标。 我覆盖了configureShell()方法以更改对话框标题,并且我还想更改图标。

@Override
protected void configureShell(Shell parent){
    super.configureShell(parent);
    parent.setText("Choose variant...");
    Image icon = new Image(parent.getDisplay(), "icons/best.gif"); - this method does not work as it cannot find the file
    parent.setImage(icon);
}

我也尝试过使用getClass().getResource("best.gif")并将图像放在同一包中,但仍然找不到我要提供的位置(FileNotFoundException),而且, Image构造函数也不接受URL对象。

@Override
protected void configureShell(Shell parent){
    super.configureShell(parent);
    parent.setText("Choose variant...");
    Image icon = new Image(parent.getDisplay(), getClass().getResource("icons/best.gif"));
    parent.setImage(icon);
}

有没有办法使用我在eclipse插件中已经拥有的图标? 主要问题是从插件的icons文件夹中获取图标,并使其成为Image对象。
谢谢。

您可以像这样在插件激活器类中注册图标:

@Override
protected void initializeImageRegistry(final ImageRegistry reg) {
    reg.put(IMAGE_PATH, imageDescriptorFromPlugin(PLUGIN_ID, IMAGE_PATH));
}

图像路径相对于您的插件,例如icons/icon.png

您也可以通过激活器类访问这些图像:

final Image image = MyActivatorClass.getDefault().getImageRegistry().get(IMAGE_PATH);
myShell.setImage(image);

(请注意,我将图像路径用作图像注册表中的键,您不必这样做,但是只需使用相同的静态String它就使所有操作都变得稍微复杂了。)

对于Eclipse插件,可以使用FileLocator类在插件中查找资源。

对于图像,请使用类似:

String path = "icons/best.gif";

URL url = FileLocator.find(bundle, new Path(path), null);

ImageDescriptor desc = ImageDescriptor.createFromURL(url);

Image image = desc.createImage();

注意:您必须安排不再需要的图像处理。

如果您的激活程序扩展了AbstractUIPlugin那么您还可以使用该ImageRegistry提供的ImageRegistry 注册表将处理。

确保在build.properties文件中列出了icons目录。 缺少此功能会在导出插件时引起问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM