【问题标题】:JavaFX SceneBuilder ImageView not workingJavaFX SceneBuilder ImageView 不工作
【发布时间】:2015-06-06 11:43:00
【问题描述】:

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

我把图片放在“img/placeholder.png”里面,然后直接放到我的根目录下。不管我把它放在哪里,它都不起作用。

我的 gui.fxml 文件的路径:

/src/gui/gui.fxml

我的图片文件的路径:

/placeholder.png

有人可以帮帮我吗?

【问题讨论】:

  • 能否在项目中添加FXML和图片的位置。请同时添加fxml中指定的图片路径
  • 已添加。希望你能帮助我!
  • 图片是放在项目的根目录下而不是源文件夹里吗?
  • 是的。无论我将图像放在哪里,它都会显示在 Scene Builder 中,但在我运行应用程序时不会显示..
  • 您是否在 fxml 中传递相对于您的项目路径的图像路径?例如,作为src/main/resources/demo.fxml 出现的fxml 和出现在src/main/resources/img/image.png 中的图像必须在fxml 中声明为<Image url="@img/image.png" />

标签: java javafx imageview scenebuilder


【解决方案1】:

图片网址中应有@,如下所示。将图像文件放在项目文件夹内,无论是同一个包还是不同的包。

 <Image url="@../image/profile_pic.png" />

【讨论】:

    【解决方案2】:

    在某些特定上下文中的另一种解决方案(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

    【讨论】:

      【解决方案3】:

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

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

      当您运行代码时,图像将自动出现。

      【讨论】:

        【解决方案4】:

        这是因为您没有在程序中添加 jfoenix jar。 将 jfoenix jar 添加到您的项目中

        【讨论】:

          【解决方案5】:

          只需尝试刷新 Eclipse 的系统资源管理器。我是这样解决的。

          【讨论】:

            【解决方案6】:

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

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

            【讨论】:

            • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
            猜你喜欢
            • 1970-01-01
            • 2016-11-07
            • 2016-02-24
            • 2018-08-27
            • 2012-05-15
            • 1970-01-01
            • 1970-01-01
            • 2016-01-20
            • 1970-01-01
            相关资源
            最近更新 更多