如何使用 JavaFX 中的 Scene Builder 将背景图像添加到 AnchorPane?

新手上路,请多包涵

如何使用 Scene Builder 将背景图像添加到 AnchorPane

我已经试过了:

 -fx-background-image url('C:/Users/Documents/page_background.gif')

我如何在 Scene Builder 中设置它。

以及生成的 FXML:

 <AnchorPane id="LoginAnchorPane" fx:id="LoginAnchorPane" prefHeight="400.0" prefWidth="600.0" style="-fx-background-image: url('C:/Users/Documents/page_background.gif');" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="javafx_lsdu.LoginController">

原文由 pen1993 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
2 个回答

您可以尝试直接在 Scene Builder 中将其设置为:

 -fx-background-image: url('file:C:/Users/Documents/page_background.gif')

它需要指定方案/协议。

但建议的方法是,将 CSS 样式单独放在一个 CSS 文件中。例如,您可以在 CSS 文件中创建一个 CSS 样式类(我们称之为“application.css”):

应用程序.css

 .anchor {
    -fx-background-image:url('file:/C:/Users/Documents/page_background.gif');
}

然后在 FXML 文件中,将此样式表添加到根目录,并将 anchor 样式类添加到 AnchorPane

 <AnchorPane prefHeight="545.0" prefWidth="712.0" styleClass="anchor" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.60">
  <stylesheets>
    <URL value="@application.css" />
  </stylesheets>
</AnchorPane>

注意:样式表应添加到根节点(在示例中 AnchorPane 是根节点)。

原文由 DVarga 发布,翻译遵循 CC BY-SA 3.0 许可协议

我是 JavaFX 的新手,但我在没有任何编码的情况下向我的 AnchorPane 添加了背景图像。只需拖放图像即可。这就是 Scene Builder 的设计目的,不是吗?我认为这是自切片面包以来最好的东西。

  1. 我用 Photoshop 编辑我的背景图片,以获得与我的 AnchorPane 相同的大小,800 x 600 像素。我还在 Photoshop 中创建了一个新的空白文件,大小相同。文件,新建,空白文件。然后我复制我的背景图片并将其粘贴到空白文件的顶部,以便我能够设置不透明度 50%(透明度)。我喜欢这样,它使我的背景图片“柔和”。

  2. 我将我的 50% 不透明度(50% 透明)背景图片复制到我的 NetBeans 项目的 src(源)文件夹中。 src 文件夹是一个普通的 Windows 资源管理器文件夹。

  3. 将 src 文件夹中的背景 jpg 图像作为 ImageView 拖放到 Scene Builder 中,拖放到位于 Document、Hierarchy 中的 AnchorPane 图标(节点)上。 Scene Builder 的左侧。如果 ImageView 掉到别处,将它拖到它所属的位置,你希望它在 AnchorPane 中,那就是背景。

  4. 选择(突出显示)背景图像 ImageView 后,修复 Scene Builder、Inspector、Layout:ImageView 右侧面板上的设置。将 Anchor Pane Constraints(蜘蛛网一样的东西)的左侧和顶部设置为 0。并固定大小,适合宽度 800,适合高度 600。

像馅饼一样简单。无需编码,Scene Builder 会自动为您编写代码。也不需要 css 文件。真高兴,你可以看到你在做什么。所见即所得,所见即所得。

原文由 dirk 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题