JAVAFX资源输入流为null



所以我在学校为我的项目制作了纸牌游戏。它使用了向用户显示卡片的GUI。

我在Intellij

中使用Java FXML

我只是试图使所有内容都可以正常工作,然后才能使其看起来很漂亮,但是卡片是带有图像的按钮。

我查找了如何将图像放在按钮上,而Javafx的主要指南对我不起作用。我还尝试了搜索,找到了一个 - 加载图像资源 - 但是我已经准确地遵循了说明,但我仍会遇到错误:

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的图片:https://i.stack.imgur.com/bl5yy.jpg

我想要的是,单击按钮时,图像更改为俱乐部的王牌(我将在单击DEAR按钮时都会更改为随机的,但这是在我完成此操作之后的(

HERS代码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必须是什么?还是我设置了错误?

任何帮助将不胜感激:(

谢谢

我已经设法解决了它,但是我仍然不知道为什么会提供例外。但是解决方案是:

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

这将做:(

相关内容

  • 没有找到相关文章

最新更新