JavaFX SceneBuilder ImageView不起作用。

6

我需要使用SceneBuilder创建GUI界面。我在界面中添加了一个ImageView,并正确设置了我的图像路径。在SceneBuilder中,图像正常显示,但运行应用程序时,图像不会出现。

我将图像放在“img / placeholder.png”文件夹中,然后直接放在根目录中。无论我把它放在哪里,它都无法正常工作。

gui.fxml文件的路径:

/src/gui/gui.fxml

我的图像文件路径:

/placeholder.png

有谁能帮帮我吗?


1
你能否在项目中添加FXML文件和图片的位置?请同时添加FXML文件中指定的图片路径。 - ItachiUchiha
已添加。希望你能帮助我! - beeef
图片是否放置在项目的根目录而不是源文件夹中? - ItachiUchiha
是的。无论我把图片放在哪里,它都会在Scene Builder中显示,但当我运行我的应用程序时却不显示。 - beeef
你是否在fxml中相对于项目路径传递了图像路径?例如,一个fxml文件位于src/main/resources/demo.fxml,而一个图像位于src/main/resources/img/image.png,则在fxml中必须声明为<Image url="@img/image.png" /> - ItachiUchiha
我已经解决了 - 图像需要放在src文件夹中的某个位置。我把它放在那个文件夹外面,所以它没有起作用。谢谢! - beeef
6个回答

8

有一个更简单的解决方案,无需添加或删除任何代码。

在Scene Builder中创建ImageView控件并从计算机中选择图像后,选择省略号按钮旁边的“齿轮”图标,并选择“切换到绝对路径”。

运行代码后,图像将自动显示。


4
在某些特定情况(与maven相关),另一个解决方案是,在给定的/src/main/resources/foo/gui.fxml和/src/main/resources/foo/img/foo.png中,如果你在SceneBuilder中创建一个图像视图并将图像设置为foo.png,则url读取@img/foo.png。不幸的是,该图像不会显示在应用程序中。如果您将图像url更改为@/foo/img/foo.png,则该图像将不再在SceneBuilder中显示,但它将在应用程序中显示。请注意:SceneBuilder 8.2.0,JDK 1.8,IntellJ IDEA 2016.1

1
在图像URL中应该使用@,将图像文件放在项目文件夹内,无论是同一包还是不同的包。
 <Image url="@../image/profile_pic.png" />

1

尝试刷新Eclipse的系统资源管理器。我是用这种方法解决的。


0

来自内容根目录的路径 src/main/resources/assets/POMME.png =

 <Image url="@../../../assets/POMME.png" />

目前你的回答不够清晰。请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

-2
这是因为您的程序中没有添加jfoenix jar。 将jfoenix jar添加到您的项目中 [xdezo.com][1]

don't spam! ... - kleopatra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接