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

时间:2016-07-25 10:21:01

标签: java javafx fxml

如何使用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">

3 个答案:

答案 0 :(得分:5)

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

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

它需要指定方案/协议。

但建议的方法是在CSS文件中分离CSS样式。例如,您可以在CSS文件中创建一个CSS样式类(让我们调用它&#34; application.css&#34;):

application.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是根)。

答案 1 :(得分:1)

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

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

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

3)将背景jpg图像从src文件夹拖放到Scene Builder中作为ImageView,拖放到Document,Hierarchy中的AnchorPane图标(节点)上。 Scene Builder的左侧。如果ImageView在其他地方掉落,请将其拖动到它所属的位置,您希望它在AnchorPane中,它是背景。

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

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

答案 2 :(得分:0)

您需要制作一个新的CSS文件,并将下面给出的代码放入其中,然后在url中写入图片名称。

.bodybg{
     -fx-background-image: url('**your image name**.jpg');
     -fx-background-size: 100% 100%;    
  }

此后,您必须选择锚窗格,然后转到其属性,然后选择CSS Style sheet,然后选择Stle class。此后,您的背景将改变。

我找到了完整的教程,详细介绍了Change your Application Background in Scene Builder