2015-10-16 58 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()); 

這適用於我。

相關問題