JavaFX按钮栏布局-方向和空间分布

JavaFX按钮栏布局-方向和空间分布,java,javafx,fxml,scenebuilder,Java,Javafx,Fxml,Scenebuilder,我有一个带有一些按钮和滑块的按钮栏(在SceneBuilder中): 目标 左侧所有按钮,宽度均匀-间距小-滑块填充剩余宽度 ->Slider需要选择退出使用fxml的ButtonUniformSize,我只找到了编程方式setButtonUniformSize 我还发现了这个问题: 但这是关于单独配置和对齐按钮的,这是我不想要的 在下面的屏幕截图中,您可以看到方向设置为从左到右,我不明白为什么它从右到左对齐 这是SceneBuilder生成的代码的相关部分: <VBox prefHe

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

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

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

我还发现了这个问题: 但这是关于单独配置和对齐按钮的,这是我不想要的

在下面的屏幕截图中,您可以看到方向设置为从左到右,我不明白为什么它从右到左对齐

这是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>

[...]

从外观上看,这是一项缺失的功能。政府似乎对此没有任何相关问题

而不是

<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>


使按钮左对齐。如果您打算在以后为按钮文本使用等距图标而不是文本,这一点尤其有意义。

看起来这是一个缺失的功能。政府似乎对此没有任何相关问题

而不是

<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>


使按钮左对齐。如果您打算以后在按钮文本中使用等距图标而不是文本,这一点尤其有意义。

是否有理由不将按钮放在按钮栏中,以及按钮栏和滑块放在
HBox
中?这样就很容易控制滑块的布局。我不明白您对
节点定向的要求<代码>从左到右
是默认设置,您的控件按预期从左到右排列。是吗?为什么左边有空的地方?buttonbar的原因是我希望所有按钮的宽度相等,它默认为我想要的所有值,如垂直居中等。节点从左到右排列:首先是两个按钮,然后是滑块,按钮在滑块的左侧。左侧有空白,因为默认情况下它是右对齐的。这与节点方向无关。我不是建议移除按钮栏;只需将其用于按钮(而不是滑块)。调用
setButtonUniformize
的“FXML方法”应该是
,但我不知道场景生成器是否有方法设置该属性。我看不到任何方法可以更改按钮栏的对齐方式,无论是在FXML还是在Java中。是否有理由不将按钮放在按钮栏中,以及按钮栏和滑块放在
HBox
?这样就很容易控制滑块的布局。我不明白您对
节点定向的要求<代码>从左到右
是默认设置,您的控件按预期从左到右排列。是吗?为什么左边有空的地方?buttonbar的原因是我希望所有按钮的宽度相等,它默认为我想要的所有值,如垂直居中等。节点从左到右排列:首先是两个按钮,然后是滑块,按钮在滑块的左侧。左侧有空白,因为默认情况下它是右对齐的。这与节点方向无关。我不是建议移除按钮栏;只需将其用于按钮(而不是滑块)。调用
setButtonUniformSize
的“FXML方法”应该是
,但我不知道场景生成器是否有设置该属性的方法。在FXML或Java中,我看不到任何更改按钮栏对齐方式的方法