图像不加载
尝试运行的代码图像不加载
// Create a label with an image
Image image = new Image(display, "interspatial.gif");
Label imageLabel = new Label(shell, SWT.NONE);
imageLabel.setImage(image);
是给我的错误信息
Exception in thread "main" org.eclipse.swt.SWTException:
i/o error (java.io.FileNotFoundException: interspatial.gif
(O sistema não pode encontrar o arquivo especificado))
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.graphics.ImageLoader.load(Unknown Source)
at org.eclipse.swt.graphics.ImageDataLoader.load(Unknown Source)
at org.eclipse.swt.graphics.ImageData.<init>(Unknown Source)
at org.eclipse.swt.graphics.Image.<init>(Unknown Source)
at examples.ch5.LabelExample.main(LabelExample.java:31)
Caused by: java.io.FileNotFoundException:
interspatial.gif
(O sistema não pode encontrar o arquivo especificado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at org.eclipse.swt.internal.Compatibility.newFileInputStream(Unknown Source)
... 5 more
其他信息:
在Eclipse中,我已经扩大Chapter05,然后examples.ch5 ,然后右键单击LabelExample.java,然后选择运行方式,然后选择1个Java应用程序。
我尝试在Chapter05目录中放置interspatial.gif,示例目录,ch5目录和图像目录(可能与来自同一章节的其他源代码有关)。
有 “的软件包examples.ch5;”在文件的开始行。
为什么图像没有加载?
它看起来像你的形象是在错误的地方或有错误的名称。确保代码中的名称相同,并将其复制到一些新的位置以查看是否可以显示它。
的图像可能需要在完全相同的文件夹作为源文件,可能是“src”中去。
它扔java.io.FileNotFoundException。因此,你给了一个错误的路径,或者你的图像在给定的路径上不可用。
所以就到你的Eclipse工作区,并打开该项目正尝试运行(Chapter05)并在src文件夹中的文件LabelExample.java粘贴interspatial.gif图像。然后我认为它应该工作。
在你的榜样,
Image image = new Image(display, "interspatial.gif");
图像需要为这个代码相同的路径存在。如果这不是你想要的,你可以使用插件的Activator#getImageDescriptor(String path)
,它使用插件相对路径。另外,如果你想重复使用这个图像,你可以重写AbstractUIPlugin#initializeImageRegistry(ImageRegistry reg)
并将图像添加到注册表中,稍后通过AbstractUIPlugin#getImageRegistry()#get(String key)
获取它。注册管理机构负责处理图像。
的第二个参数...
new Image(display, "interspatial.gif")
...是一个文件路径。由于“interspatial.gif”是而不是绝对路径,但是是相对路径,因此它与执行应用程序的当前工作目录(CWD)相关。
当您运行在Eclipse中你的应用程序,那么默认的CWD是项目的根。因此,将“interspatial.gif”文件移动到Eclipse项目的根目录即可解决问题。
'src'将是根 - 我不会在那里找到。它必须位于与java文件相同的文件夹中。 – andyczerwonka 2009-10-12 23:27:53