java - setTitleImage 和 FileLocator

标签 java eclipse

我将在java插件中设置jface对话框的标题图像。当我编写下面的代码时,出现错误。找不到该文件。我该怎么办?

Bundle bundle = Platform.getBundle("Layout");
URL url = FileLocator.find(bundle, new Path("icon/c.png"), null);
image = new Image(Display.getDefault(), url.toString());
setTitleImage(image);

最佳答案

FileLocator.find 返回的 URL 使用特殊的“协议(protocol)”值,该值只能被 Eclipse 和 JFace 代码理解(类似于 bundleentry://84.fwk537066525/icon/c .png)。 SWT 代码(例如 Image)无法识别 URL。

最好的办法是从 JFace ImageDescriptor 创建 Image:

ImageDescriptor desc = ImageDescriptor.createFromURL(url);

Image image = desc.createImage();

您还可以使用 FileLocator.toFileURL 但这可能会导致插件被解压,因此在这种情况下应该避免使用,因为有更好的替代方案。

关于java - setTitleImage 和 FileLocator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47266169/

相关文章:

java - 在模拟器中运行时,TextView 在自定义对话框中不可见

java - java中的控制台操作符无法编译

java - Go/Java中如何修改http请求中的ip地址

css - Eclipse PDT 关闭 CSS 中右括号的自动插入

java - Eclipse 插件开发,将不同的编辑器关联到相同的文件扩展名

java - java.util.Map 类不是公共(public)的或不允许在 WebService 中使用自动生成的类进行实例化

java - 如何将项目特定的设置从 Eclipse 共享到 Intellij?

java - getParameter 对于 post 和 get 操作的行为是什么?

java - 如何调试eclipse后端代码?

java - 发送到主题时抛出 TimeoutException