当前位置: 首页 > 知识库问答 >
问题:

在src文件夹外加载图像:NullPointerExcION

东郭承业
2023-03-14

我尝试了不同的变体来加载JavaFX中的图像。

两种变体工作。这里的例子:

同一软件包als Main中的图像:

    new Image(getClass().getResourceAsStream("gesicht.png");

img包中但在src文件夹中的图像:

    Image img = new 
    Image(getClass().getResource("../img/gesicht.PNG").toExternalForm());

最后一种变体不起作用,我不明白为什么。有人能解释我是谁吗?

img-Folder中的图像,src文件夹外部

      Image img = new Image(ClassLoader.getSystemResource("../../img/gesicht.png").toExternalForm());

我什么都试过了。但是,只要图像位于src文件夹之外,我就会得到一个NullPointerException或一个失败的URL

文件夹结构:

项目

>

  • src

    • 申请
      • Main.java

      IMG

      • gesicht.png

      具有所有变体的项目结构

  • 共有2个答案

    艾阳羽
    2023-03-14

    我有一个解决方案:

    1. 将img文件夹添加为资源文件夹

    Image img=新图像(“文件:img/gesicht.png”);初级阶段。getIcons()。添加(img);

    替代:Image=new Image(new File(img/gesicht.png). toURI(). toString());

    何嘉运
    2023-03-14

    你需要确保img文件夹是一个资源文件夹.然后:

    Image img = new Image(getClass().getResource("/img/gesicht.png").toExternalForm());
    

    我认为相对路径从根开始,而不是从源文件所在的位置开始。

     类似资料:
    • 我和同学一起使用git,现在我注意到,如果我加载另一个学生的分支,它会奇怪地导入src文件夹。 有什么问题吗?

    • 问题内容: 我正在尝试从文件中加载图像而不使用。这些文件夹是: 我想将图像加载到资产文件夹中。我试过了: 我已经尝试过使用字符串路径“ /TestProject/assets/drawIcon.png”,但是什么也没有。我不知道如何加载该图片! 问题答案: 将目录设置为资源目录,然后从“ /drawIcon.png”位置将图像加载为资源: 如果要创建javafx图像: 在这种情况下,也请将该文件夹

    • 我正在从事一个JavaFX8(maven)项目。我想在sources(而不是resources)文件夹中存储一个fxml文件 当我将fxml存储到location/src/main/resources/views/b/MyFxml时。fxml我使用命令加载它时没有错误, 有没有办法从/src/main/java/package/name/RoleView加载我的fxml文件。fxml位置?

    • 我正在处理一个JavaFX8(maven)项目。我想在sources(而不是resources)文件夹中存储fxml文件。 当我将fxml存储到位置/src/main/resources/views/b/myfxml.fxml时, 有没有办法从/src/main/java/package/name/roleview.fxml位置加载我的fxml文件?

    • 问题内容: 我想在不知道文件名的情况下将所有图像加载到文件夹中,然后将它们存储到Integer向量中-在运行时。 实际上,我需要执行与本示例相同的操作:http : //developer.android.com/resources/tutorials/views/hello- gridview.html 但是在运行时却不知道文件名。 有什么帮助吗? 在您回答之后,我知道该怎么做…但是我不知道如何

    • 我正在尝试从可执行JAR文件加载图像。 我跟踪了这里的信息,然后是这里的信息。 这是检索图像的函数: 这就是它的名称: 这是一个简单的对象。我也不会得到NullPointerException,除非它被UI屏蔽。 我检查了JAR文件,图像位于: /图片/标识1。巴布亚新几内亚 当前代码在eclipse中以及导出到JAR并在终端中运行时都有效,但在双击JAR时不起作用,在这种情况下,图标是默认的JF