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文件位于同一文件夹中。