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 中,您可以更改ButtonBar
的 ButtonOrder
属性。如果您将U+
放在开头而不是中间,则所有未知按钮都将左对齐。但是我还没有找到按按钮执行此操作的方法;我的“左对齐”按钮似乎最终居中...... :(【参考方案2】:
通过检查器,通常在 NetBeans 的右侧,您会找到“布局”选项卡。 打开它并滚动到“转换”部分。
“平移 X”选项用于在 x 轴上调整按钮栏中的按钮。
【讨论】:
【参考方案3】:Scene Builder右侧按钮的Layout标签中有“Transforms”属性。更改“翻译 X”。 (按钮的位置会水平变化。) "Translate Y" 将垂直改变按钮的位置。 您需要先计算位置。
我刚刚找到它。
【讨论】:
改成什么?输入应该是什么? 正数或负数。以上是关于JavaFX:在 ButtonBar 内对齐按钮(使用 SceneBuilder 或 fxml)的主要内容,如果未能解决你的问题,请参考以下文章