我有一个带有一些按钮和一个滑块的Buttonbar(在SceneBuilder中):

java - JavaFX Buttonbar布局-方向和空间分布-LMLPHP

目标

左侧的所有按钮,宽度均匀-小间距-滑块填充剩余宽度

->滑块需要使用fxml选择退出ButtonUniformSize,我只找到了编程方式setButtonUniformSize

我也发现了这个问题:
JavaFX: Align Buttons inside ButtonBar (using SceneBuilder or fxml),但这是关于分别配置和对齐按钮的,我不想这样做。

在下面的屏幕快照中,您可以看到Orientation设置为LEFT_TO_RIGHT,而我只是不明白为什么它从右向左对齐?

java - JavaFX Buttonbar布局-方向和空间分布-LMLPHP

这是SceneBuilder生成的代码的相关部分:

<VBox prefHeight="600.0" prefWidth="640.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1">
  <children>
    <MenuBar VBox.vgrow="NEVER">
      [...]
    </MenuBar>
      <ButtonBar buttonMinWidth="25.0" nodeOrientation="LEFT_TO_RIGHT" VBox.vgrow="NEVER">
        <buttons>
            <Button mnemonicParsing="false" styleClass="stop" />
            <Button mnemonicParsing="false" styleClass="playPause" />
            <Slider styleClass="volume" />
        </buttons>
         <padding>
            <Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
         </padding>
      </ButtonBar>
      <FolderView VBox.vgrow="ALWAYS" />
  </children>
</VBox>

最佳答案

看起来是缺少的功能。 Jfx Project bug tracker似乎与此无关。

代替

<ButtonBar>
   <buttons>
      <Button text="Button A"/>
      <Button text="Button B"/>
      <Button text="Button C"/>
   </buttons>
</ButtonBar>


只需做一个

<HBox>
  <Button text="Button A"/>
  <Button text="Button B"/>
  <Button text="Button C"/>
</HBox>


左对齐按钮。如果您打算以后使用均匀间隔的图标而不是使用文本作为按钮文本,则这特别有意义。

10-06 13:49