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”。
为了更好的解释,图片如下;)
我在 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”。
为了更好的解释,图片如下;)