2017-05-06 76 views
0

因此,我正在爲我在學校的項目製作紙牌遊戲。它使用GUI顯示給用戶的卡片。JavaFX資源輸入流爲空

我使用Java FXML中的IntelliJ

我只是試圖讓一切工作之前,我讓它在此刻看起來很漂亮,但卡與attatched他們的圖像按鈕。

我擡頭看看如何將圖像放到按鈕上,而JavaFX的主要指南並不適合我。我也試着搜索,我找到了一個 - Loading image resource - 但我已經完全按照指示,我仍然得到錯誤:

Caused by: java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) 
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) 
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769) 
... 48 more 
Caused by: java.lang.NullPointerException: Input stream must not be null 
at javafx.scene.image.Image.validateInputStream(Image.java:1128) 
at javafx.scene.image.Image.<init>(Image.java:706) 
at sample.Controller.cardClickHandler(Controller.java:26) 
... 58 more 

這裏是我的IDE與目錄的圖片:http://imgur.com/a/B9U64

所有我想要的是,當按鈕被點擊時,圖像變爲俱樂部王牌(我會做到這一點,當交易按鈕被點擊時,他們都變成隨機的,但這是在我得到這個工作後)

繼承人代碼atm:

public void cardClickHandler(ActionEvent actionEvent) 
{ 
    Button button = (Button)actionEvent.getSource(); 
    Integer row = GridPane.getRowIndex(button); 
    Integer column = GridPane.getColumnIndex(button); 
    if (row==1) 
    { 
     System.out.println("Opponent's Hand, Card "+Integer.toString(column+1)); 
    } 
    if (row==3) 
    { 
     System.out.println("Your Hand, Card "+Integer.toString(column+1)); 
    } 
    Image image = new Image(getClass().getResourceAsStream("/resources/images/Ace-of-Clubs.png")); 
    ImageView imageView = new ImageView(image); 
    imageView.setFitHeight(80); 
    imageView.setFitWidth(50); 
    button.setGraphic(imageView); 
} 

圖像的URL必須是什麼?還是我把它設置錯了?

任何幫助,將不勝感激:)

三江源

回答

0

我設法解決這個問題,但我仍然不知道爲什麼它給出了例外,雖然。但解決的辦法是:

Image image = new Image(new FileInputStream("image.jpg"));

這樣做:)