2015-10-16 63 views
0

我在我的javafx项目中有两个包,第一个“图像”是图像,第二个是java代码,我想问你如何设置图像在这种情况下,我尝试了解决方案,但没有奏效。JavaFx:如何设置位于其他包中的图像路径

尝试代码:

reg_image_statut.setImage(new Image("src/images/denided.png")); 

reg_image_statut.setImage(new Image("/src/images/denided.png")); 

reg_image_statut.setImage(new Image("/images/denided.png")); 

reg_image_statut.setImage(new Image("../images/denided.png")); 

异常getted:

Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Invalid URL: Invalid URL or resource not found 
    at javafx.scene.image.Image.validateUrl(Image.java:1089) 
    at javafx.scene.image.Image.<init>(Image.java:598) 

解决方案: 是@mipa的解决方案是非常简单的,这也正是像你说的,正确的解决方案是我忘记尝试的唯一可能性。三江源@mipa

reg_image_statut.setImage(new Image("images/actived.png")); 
+0

图像相对于您的类文件在哪里?当我对使用的路径有疑问时,通常会创建一个URL对象并将其打印出来。该URL可以用来加载图像。 – hotzst

回答

2

如果src是您的构建路径的源文件夹,你几乎得到了它。我猜你错过了这一个:

reg_image_statut.setImage(new Image("images/denided.png")); 

如果仍然不起作用,你可以尝试这些替代品之一(见Image JavaDoc):

// The image is located in default package of the classpath 
Image image1 = new Image("/flower.png"); 

// The image is located in my.res package of the classpath 
Image image2 = new Image("my/res/flower.png"); 

// The image is located in the current working directory 
Image image4 = new Image("file:flower.png"); 
3

你为什么不离开它去渣构造一个正确的URL,这是由Image构造器预期的?

Image icon16 = new Image(getClass().getResource("/images/mpgafor_logo_16x16.png").toExternalForm()); 

这适用于我。

相关问题