Java 图像未加载

Java 图像未加载,java,swt,jface,Java,Swt,Jface,正在尝试运行代码 // 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

正在尝试运行代码

// 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
线程“main”org.eclipse.swt.swt中的异常异常异常: i/o错误(java.io.FileNotFoundException:interspace.gif (特别是阿尔基沃中心系统) 位于org.eclipse.swt.swt.error(未知源) 位于org.eclipse.swt.swt.error(未知源) 位于org.eclipse.swt.graphics.ImageLoader.load(未知源) 位于org.eclipse.swt.graphics.ImageDataLoader.load(未知源) 位于org.eclipse.swt.graphics.ImageData(未知来源) 位于org.eclipse.swt.graphics.Image(未知来源) 位于examples.ch5.LabelExample.main(LabelExample.java:31) 原因:java.io.FileNotFoundException: interspace.gif (特别是阿尔基沃中心系统) 在java.io.FileInputStream.open(本机方法) 位于java.io.FileInputStream。(FileInputStream.java:106) 位于java.io.FileInputStream。(FileInputStream.java:66) 位于org.eclipse.swt.internal.Compatibility.newFileInputStream(未知源) ... 还有5个 其他信息:

在Eclipse中,我扩展了第05章,然后是examples.ch5,然后右键单击LabelExample.java,然后选择RunAs,然后选择1Java应用程序

我尝试将interspace.gif放在第05章目录、示例目录、ch5目录和图像目录中(可能与同一章中的其他源代码相关)

文件开头有一行“a package examples.ch5;”


为什么图像未加载?

看起来您的图像位于错误的位置或名称错误。确保代码中的名称相同,并将其复制到几个新位置,以查看是否可以显示它


图像可能需要放在与源文件完全相同的文件夹中,可能是“src”。

您的图像似乎放错了位置或名称不正确。确保代码中的名称相同,并将其复制到几个新位置,以查看是否可以显示它


图像可能需要与源文件放在完全相同的文件夹中,可能是“src”。

它抛出java.io.FileNotFoundException。因此,是您给出了错误的路径,还是您的图像在给定的路径上不可用


因此,只需转到Eclipse工作区,打开您试图运行的项目(第05章),并将interspace.gif图像与文件LabelExample.java粘贴到src文件夹中。然后我认为它应该可以工作。

它抛出java.io.FileNotFoundException。因此,是您给出了错误的路径,还是您的图像在给定的路径上不可用

因此,只需转到Eclipse工作区,打开您试图运行的项目(第05章),并将interspace.gif图像与文件LabelExample.java粘贴到src文件夹中。那么我认为它应该会起作用。

在你的例子中

Image image = new Image(display, "interspatial.gif");
您的映像需要存在于与此代码相同的路径中。如果这不是您想要的,您可以使用插件的
激活器#getImageDescriptor(字符串路径)
,它使用插件的相对路径

另外,如果您想重用此图像,您可以覆盖
AbstractUIPlugin#initializeImageRegistry(ImageRegistry reg)
并将图像添加到注册表中,然后通过
AbstractUIPlugin#getImageRegistry()#get(String key)
获取图像。注册表处理图像的处理。

在您的示例中

Image image = new Image(display, "interspatial.gif");
您的映像需要存在于与此代码相同的路径中。如果这不是您想要的,您可以使用插件的
激活器#getImageDescriptor(字符串路径)
,它使用插件的相对路径


另外,如果您想重用此图像,您可以覆盖
AbstractUIPlugin#initializeImageRegistry(ImageRegistry reg)
并将图像添加到注册表中,然后通过
AbstractUIPlugin#getImageRegistry()#get(String key)
获取图像。注册表处理图像的处理。

的第二个参数

new Image(display, "interspatial.gif")
。。。是一个文件路径。由于“interspace.gif”不是绝对路径,而是相对路径,因此它与执行应用程序的当前工作目录(CWD)相关


在Eclipse中运行应用程序时,默认的CWD是项目根目录。因此,将“interspace.gif”文件移动到Eclipse项目的根目录下将解决此问题。

的第二个参数

new Image(display, "interspatial.gif")
。。。是一个文件路径。由于“interspace.gif”不是绝对路径,而是相对路径,因此它与执行应用程序的当前工作目录(CWD)相关


在Eclipse中运行应用程序时,默认的CWD是项目根目录。因此,将“interspace.gif”文件移动到Eclipse项目的根目录下将解决这个问题。

'src'将是根目录,在那里找不到我。它必须与java文件位于同一文件夹中。“src”将是根目录-在那里找不到我。它必须与java文件位于同一文件夹中。