如何使用 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>
Run Code Online (Sandbox Code Playgroud)
使用 CSS 属性-fx-spacing(使用<size>类型)。您可以在单独的 CSS 文件中执行此操作并链接该文件,或者使用该style属性直接在 FXML 文件中执行此操作。
示例 FXML:
<ToolBar fx:id="welcomeToolBar" prefHeight="50" style="-fx-spacing: 0px;">
<!-- items -->
</ToolBar>
Run Code Online (Sandbox Code Playgroud)
示例 CSS:
.tool-bar {
-fx-spacing: 0px;
}
Run Code Online (Sandbox Code Playgroud)
这样做的原因是该类的默认皮肤ToolBar公开了StyleableProperty间距1 的 a。我在Scene Builder的“CSS Analyzer”和 JavaFX 9(和 8)2源代码中找到了它(由于某种原因无法运行Scenic View)。但是,我找不到有关此属性的任何文档;甚至在JavaFX CSS 参考指南中。
1.默认皮肤(至少在 JavaFX 13 中)公开的另一个未记录的样式属性是-fx-alignment接受javafx.geometry.Pos. 这些属性分别应用于HBox或VBox取决于工具栏的方向是水平还是垂直。
2. 仍然存在于 JavaFX 13 源代码中。
| 归档时间: |
|
| 查看次数: |
1146 次 |
| 最近记录: |