如何修改JavaFX ToolBar中生成的HBox的间距?

时间:2017-11-10 18:55:39

标签: java javafx

如何使用FXML更改生成的项目?

创建JavaFX ToolBar时,会自动生成嵌套的HBox(或VBox)。例如,我想将此生成的HBox的间距设置为0.

 <ToolBar fx:id="welcomeToolBar" prefHeight="50">
        <items>
                <Button fx:id="closeButton" prefHeight="50" prefWidth="100" onAction="#closeWindow" text="Close" />
                <Button text="New Image" prefHeight="50" prefWidth="100" onAction="#newImage" styleClass="button-accent"/>
                <Pane HBox.hgrow="ALWAYS"/>
                <CheckBox text="Hide this window on application start"
                          fx:id="hideOnLoadCheckBox" onAction="#setVisibilityOnApplicationLoad"/>
        </items>
 </ToolBar>

https://github.com/kmfb/udacityProjects/tree/master/model

1 个答案:

答案 0 :(得分:2)

使用CSS属性-fx-spacing。您可以在单独的CSS文件中执行此操作并链接文件或使用style属性直接在FXML文件中执行此操作。

示例FXML:

<ToolBar fx:id="welcomeToolBar" prefHeight="50" style="-fx-spacing: 0px;">
    <!-- items -->
</ToolBar>

示例CSS:

.tool-bar {
    -fx-spacing: 10px;
}

这样做的原因是ToolBar类的默认皮肤为间距公开StyleableProperty。我在SceneBuilder的CSS分析器和Java 9(和8)源代码中找到它(由于某种原因无法运行ScenicView)。但是,我找不到关于这个属性的任何文档;甚至在JavaFX CSS ReferenceGuide