Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java setTitleImage和FileLocator_Java_Eclipse - Fatal编程技术网

Java setTitleImage和FileLocator

Java setTitleImage和FileLocator,java,eclipse,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); Fi

我将在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使用一个特殊的“协议”值,该值只有Eclipse和JFace代码才能理解,比如bundleentry://84.fwk537066525/icon/c.png. SWT代码(如图像)不理解URL

最好的做法是从JFace ImageDescriptor创建图像:

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

ImageDescriptor desc = ImageDescriptor.createFromURL(url);

Image image = desc.createImage();