如何使用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>
答案 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。