java - Eclipse 插件为自定义对话框设置图像图标

标签 java eclipse plugins

我制作了一个使用和显示多个对话框的自定义 Eclipse 插件,我想知道我是否可以将左上角的图标图像设置为我在插件的 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 对象。
谢谢。

最佳答案

您可以在您的插件中注册图标activator class像这样:

@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 可以使一切变得不那么复杂.)

关于java - Eclipse 插件为自定义对话框设置图像图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39222232/

相关文章:

android - Playn:无法为任何 Playn 演示成功部署 Android 配置文件

html - 有没有浏览器工具可以快速浏览网站的标题信息?

Java套接字读取错误异常与返回码

eclipse hibernate tomcat错误

java - 内容中实现的类/子类有助于 eclipse

javascript - 插入这个条件语句最优雅的方式是什么?

java - 如何自定义 JFrame 的标题栏?

java - 在 J2EE 应用程序中优雅地处理 DB 节点重启

具有附加模式的 Java FileWriter

java - 使用maven构建时无法读取子包