JavaFX:仅当我使用绝对路径时才显示 ImageView ......为什么?

JavaFX: ImageView is being displayed only when I use an absolute path... why?

我在 Intellij IDEA 上使用 JavaFX 和 SceneBuilder。我试图在我的应用程序的登录屏幕中显示一个简单的 png 图像。如果我尝试采用相对路径(如下所示)图片将不会显示(即使我没有得到任何错误也没有警告)。

<ImageView
    fitHeight="87.0"
    fitWidth="91.0"
    pickOnBounds="true"
    preserveRatio="true">
    <image>
        <Image
            url="@../../res/logo.png" />
    </image>
</ImageView>

但是,如果我尝试使用 绝对路径,它会起作用

<Image
    url="file:/home/username/Workspaces/IdeaProjects/MyProject/res/logo.png" />

由于我正在与一个小组一起处理这个项目,并且我正在与 git 共享它,所以我绝对需要相对路径。如何解决这个问题?

请注意 如果我插入一个相对路径,该路径导致一个不存在的资源,我会得到一个错误!所以IDE正确识别了路径,但是当它是相对路径时不知何故无法正确显示图片。

我已经使用 IntelliJ 对此进行了测试并使其正常工作。我建议您执行以下操作:

  • 在 IntelliJ 中转到文件 -> 项目结构...
  • 在模块 select 下您的 res 文件夹并将其添加为 "Resources" 文件夹。
  • 单击“确定”,然后在 fxml 中将图像路径更改为“/logo.png”。

为了更好的解释,图片如下;)