【问题标题】:How do you modify the spacing of the generated HBox inside the JavaFX ToolBar?如何修改 JavaFX ToolBar 中生成的 HBox 的间距?
【发布时间】:2020-01-14 20:07:34
【问题描述】:

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

创建 JavaFX 工具栏时,会自动生成嵌套的 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>

【问题讨论】:

  • 您可能需要实现自己的ToolBar

标签: java javafx


【解决方案1】:

使用 CSS 属性 -fx-spacing(使用 &lt;size&gt; 类型)。您可以在单独的 CSS 文件中执行此操作并链接该文件,或者使用 style 属性直接在 FXML 文件中执行此操作。

FXML 示例:

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

示例 CSS:

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

这样做的原因是ToolBar 类的默认 皮肤暴露了StyleableProperty 的间距1。我在 Scene Builder 的“CSS Analyzer”和 JavaFX 9(和 8)2 源代码中找到了它(由于某种原因无法获得 Scenic View 运行)。但是,我找不到有关此属性的任何文档;即使在JavaFX CSS Reference Guide


1. default 皮肤(至少在 JavaFX 13 中)公开的另一个未记录的可样式属性是 -fx-alignment,它接受 javafx.geometry.Pos。这些属性分别应用于HBoxVBox,具体取决于工具栏的方向是水平还是垂直。

2。仍然存在于 JavaFX 13 源代码中。

【讨论】:

  • 哇,这太棒了!是的,当我查看 JavaFX 参考资料时,我也绝对没有看到任何参考资料。非常感谢您详细介绍了这一点
猜你喜欢
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多