【发布时间】:2014-11-08 17:09:45
【问题描述】:
我正在开发一个便携式桌面应用程序,并且 UI 使用某些图像。我的应用程序的绝对路径是:C:/Users/JP/Documents/EOL/Collection/DataCollection/src/application/
我的 fxml 和主类源文件位于应用程序文件夹(如上指定)中,3 个图像位于应用程序文件夹内的“图像”文件夹中。都是 .jpg 文件。当我使用相对路径在我的 fxml 文件中引用这些文件时,会加载 1 个,而其他两个不会。
我不知道为什么一个特定文件加载而其他文件加载失败。
当我在我的 fxml 的所有三个位置引用该文件时,它工作正常。当我用绝对路径引用所有 3 个不同的图像时,它工作正常。但是我不理解仅与几个文件有关的相对路径的问题。谁能帮我解决这个问题?
我也尝试将“@”替换为“文件:”,但没有帮助。
<ImageView fitHeight="333.0" fitWidth="450.0" opacity="0.27">
<image>
<Image url="@images/ht.jpg" />
</image>
</ImageView>
<ImageView fitHeight="70.0" fitWidth="68.0" layoutX="5.0" layoutY="7.0">
<image>
<Image url="@images/eol.jpg" />
</image>
</ImageView>
<ImageView fitHeight="103.0" fitWidth="162.0" layoutX="78.0" layoutY="-9.0" preserveRatio="true">
<image>
<Image url="@images/eol2.gif" />
</image>
</ImageView>
【问题讨论】:
-
您使用的是 Scenic Builder 2.0 吗?如果是这样,当你用它打开fxml文件时,你看到这三个图像了吗?如果没有,请尝试从 Inspector 选项卡、Properties->Image 加载它们,然后浏览。保存并关闭,然后再次构建运行应用程序。
-
是的。我正在使用场景生成器 2.0。我在场景构建器中看到了所有图像,但是当我从 Java 代码运行它时,我看不到其中一个。也尝试从检查器选项卡加载。运气不好!
-
如果没有看到你的代码,我真的不知道发生了什么。您可以在运行应用程序时尝试使用Scenic View,并查看
ImageView节点下显示的内容。你为他们使用什么容器?也许它们已加载但在您看到的后面或可见场景之外......
标签: java javafx relative-path fxml image-loading