JavaFX:在 ButtonBar 内对齐按钮(使用 SceneBuilder 或 fxml)

Posted

技术标签:

【中文标题】JavaFX:在 ButtonBar 内对齐按钮(使用 SceneBuilder 或 fxml)【英文标题】:JavaFX: Align Buttons inside ButtonBar (using SceneBuilder or fxml) 【发布时间】:2015-12-02 07:28:53 【问题描述】:

我有一个带有两个按钮的 JavaFX ButtonBar(通过 SceneBuilder 创建)。 我希望其中一个按钮左对齐,另一个右对齐。 (见截图)

从文档中我已经知道如何在 java-source-code 中实现这一点:

ButtonBar.setButtonData(newButton, ButtonData.LEFT);

但是

我想知道如何实现这一点而不必在我的 java 文件中编写它,但是我如何仅使用 SceneBuilder 或相应的 fxml 文件来实现这一点

我的 .fxml 文件目前如下所示:

<ButtonBar>
  <buttons>
    <Button text="New" />
    <Button text="Save" />
  </buttons>
</ButtonBar>

* 我在 Windows 上 ** This answer 不是我想要的,因为他正在使用 ToolBar,但我想知道如何使用 ButtonBar 来做到这一点(而且他的方法不适用于 ButtonBar)

【问题讨论】:

【参考方案1】:

经过反复试验,我至少找到了一种直接通过 .fxml 文件进行操作的方法:

您可以为 Button 元素分配ButtonBar.buttonData 属性,然后为它们分配一个值。

<ButtonBar>
  <buttons>
    <Button text="New" ButtonBar.buttonData="LEFT" />
    <Button text="Save" ButtonBar.buttonData="RIGHT" />
  </buttons>
</ButtonBar>

ButtonBar.ButtonData enum 的文档非常简单明了。所以我找到了解决“左”和“右”枚举值问题的方法。

仍然

如果有人知道/知道如何直接在 SceneBuilder 中执行此操作,我将不胜感激!

【讨论】:

在 SceneBuilder 中,您可以更改 ButtonBarButtonOrder 属性。如果您将U+ 放在开头而不是中间,则所有未知按钮都将左对齐。但是我还没有找到按按钮执行此操作的方法;我的“左对齐”按钮似乎最终居中...... :(【参考方案2】:

通过检查器,通常在 NetBeans 的右侧,您会找到“布局”选项卡。 打开它并滚动到“转换”部分。

“平移 X”选项用于在 x 轴上调整按钮栏中的按钮。

【讨论】:

【参考方案3】:

Scene Builder右侧按钮的Layout标签中有“Transforms”属性。更改“翻译 X”。 (按钮的位置会水平变化。) "Translate Y" 将垂直改变按钮的位置。 您需要先计算位置。

我刚刚找到它。

【讨论】:

改成什么?输入应该是什么? 正数或负数。

以上是关于JavaFX:在 ButtonBar 内对齐按钮(使用 SceneBuilder 或 fxml)的主要内容,如果未能解决你的问题,请参考以下文章

在JavaFX中对齐虚拟键盘的键[重复]

JavaFX HBox 对齐

Java FX TextArea 对齐

使用 javaFX 对齐文本时遇到问题

JavaFX TableView 文本对齐

如何在 Flutter 中对齐小部件内的按钮