【问题标题】:How to work with a classpath resource in FXML to stay compatible with SceneBuilder?如何使用 FXML 中的类路径资源以与 SceneBuilder 保持兼容?
【发布时间】:2012-09-17 13:33:20
【问题描述】:

当我在这样的 FXML 代码中使用图像时...

<Image url="@/de/myprj/assets/icons/arrow.png" />

...一切都很好,直到我想在 SceneBuilder 中编辑 FXML 文件。如何通过 SceneBuilder 在 FXML 中使用这些资源?

【问题讨论】:

  • 在 SceneBuilder 中尝试 File -&gt; Import -&gt; Media
  • 这是可行的,但它会导致 SceneBuilder 使用图像的绝对路径。在我的项目中,我必须使用类路径中另一个库中的资源。

标签: javafx-2 scenebuilder


【解决方案1】:

使用 CSS 设置图像要安全得多,无论是在场景构建器中,还是最好在特定于您的应用的样式表中。

结帐:http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#imageview

编辑:

创建一个 css 文件,在启动应用程序时将其加载到场景的 css 文件中。

scene.getStylesheets().add(new File("mycss.css").toURI().toString());

在您的 CSS 文件中添加以下内容:

.the-image {
    -fx-image: url("theimage.png");
}

确保在您的 css 文件所在的目录中有一个名为 theimage.png 的文件。在场景构建器中,单击 ImageView。在标有“样式类”的框中添加字符串 the-image。

瞧。

【讨论】:

  • 我正在做的是利用“TitledPane”的子结构在右侧的标题中显示图像,因为它是一个“HBox”。由于到目前为止我对 CSS 还不是很熟悉,所以我需要知道如何通过 CSS 来实现这一点,以遵循您的建议。
  • 不回答问题,是吗?您如何看到 SceneBuilder 中的变化?该解决方案只是将问题转移到“如何以与 SceneBuilder 兼容的方式附加类路径相关的 css”。
猜你喜欢
  • 2014-10-30
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 2010-12-08
  • 2011-12-15
  • 2016-01-11
相关资源
最近更新 更多