2017-01-03 142 views
0

我已經閱讀了很多關於這個在stackoverflow中的其他話題,但他們的解決方案都不符合我的問題。沒有錯誤,只是一個空白的階段,我不明白爲什麼。我無法在Javafx中加載圖像

public void titleView(Pane pane) 
{ 
    Image img = new Image("file:test.png"); 

    ImageView title = new ImageView(img); 
    title.setImage(img); 
    title.setLayoutX(569); 
    title.setLayoutY(146); 
    title.fitHeightProperty().add(100); 
    title.fitWidthProperty().add(100); 
    title.setVisible(true); 

    pane.getChildren().add(title); 

    System.out.println("success!!!");   
} 

這是我所做的方法。 「test.png」文件只是一幅用油漆製作的紅色100x100照片。它位於該項目,我做了一個文件夾中:RES /紋理/ test.png 我還記得應該建立它

Pane pane = new Pane(); 
titleView(pane); 

我希望有人能幫助路徑,感謝

+1

什麼是實際路徑*相對於您的類路徑*一旦項目建成? (例如,如果您將'res'作爲構建路徑的一部分,那麼您應該能夠在構建文件夾和/或jar文件中看到'textures/test.png')。這裏的最終目標是什麼?這些圖像是否與應用程序捆綁在一起?還是要從用戶的文件系統上的某個位置(例如,通過文件選擇器,或在應用程序外部的某個指定文件夾中)加載它們? –

回答

0

這一切必須做iwth文件路徑引用...

Image img = new Image(YourMainClassName.class.getClass().getResource("test.jpg").toString()); 

或者類似的可工作

+0

我嘗試了這個和其他一些變化,但似乎沒有工作。我每次都得到java.lang.NullPointerException。 – DingDongDang132

+1

使用此方法時,圖像必須與'YourMainClassName'位於同一位置(即在默認包或src文件夾中) – Chris

+0

我希望使用很多圖像,並且稍後會變得非常混亂。但我嘗試過,但仍然有java.lang.NullPointerException – DingDongDang132

1

試試這個.getResourceAsStream

Image image = new Image(getClass().getResourceAsStream("pic.png")); 
title.setImage(image); 

的getClass()的getResource( 「...」)也拋出我NPE在Netbeans的。

0

我遇到過這個問題很多。我開始解決它的方式是確保文件退出。很多時候基本上是一個錯誤的文件路徑。

嘗試:

File file = new File("YourFile.jpg"); 
    if(file.exists()) 
    { 
     System.out.println("file exist!");//I would print file path here. 
    } 
    else 
    { 
     System.out.println("file does not exist!"); 
    } 

如果文件不退出,玩你的文件路徑:文件文件=新的文件( 「SRC/IMG/YourFile.jpg」);

如果文件退出的另一提到的方法應該工作之一。