【问题标题】:ImageView can't find image URLImageView 找不到图片网址
【发布时间】:2017-10-31 06:59:21
【问题描述】:

我在 GridPane 中显示图像时遇到问题。我收到输入流不能为空的错误。例外是在 ImageView 的创建对象的第一行。如您所见,图片在文件夹中。可能是什么问题。

    ImageView windows = new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png")));
    ImageView linux = new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png")));
    ImageView mac = new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png")));
    ImageView android= new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png"))); 

    GridPane gpanel = new GridPane();
    gpanel.setPadding(new Insets(5));       
    gpanel.add(windows, 0, 0);
    gpanel.add(linux, 1, 0);
    gpanel.add(mac, 0, 1);
    gpanel.add(android, 1, 1);

【问题讨论】:

    标签: java image javafx imageview gridpane


    【解决方案1】:

    那是因为没有找到图片,需要把路径开头的res去掉,比如:

    这个:"res/windows.png" -> 应该是:"/windows.png" ...等等。

    因为getResourceAsStream(String name)通过搜索与该类关联的资源找到具有给定名称的资源并且它从项目的根目录开始但是因为res不是另一个包,所以你不需要将它添加到相对路径的开始。

    此外,假设您在另一个名为 anotherPackage 的包中拥有 windows.png,那么您可以从您的 main 类(在您的示例中)访问它,如下所示:"/anotherPackage/windows.png"

    【讨论】:

    • 谢谢,我通过创建文件类对象解决了这个问题,将对象放入 Image 对象和放入 ImageView 对象中
    猜你喜欢
    • 2018-08-07
    • 1970-01-01
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 2021-03-05
    • 1970-01-01
    • 2017-07-13
    相关资源
    最近更新 更多