JavaFX:如何在ButtonBar中对齐按钮(使用SceneBuilder或fxml)

13

我有一个JavaFX ButtonBar,其中有两个按钮(通过SceneBuilder创建)。



我想让其中一个按钮左对齐,另一个按钮右对齐。(见截图)

enter image description here

从文档中已经知道如何在java源代码内实现此目标:

ButtonBar.setButtonData(newButton, ButtonData.LEFT);

但是

我想知道如何在不把这些代码写进我的java文件的情况下实现这一点,
我如何仅使用SceneBuilder或相应的fxml文件来实现此目标

我的.fxml文件当前是这样的:

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

* 我正在使用Windows操作系统
** 这个答案并不是我想要的,因为它使用的是ToolBar,但我想知道如何在ButtonBar中实现此功能(他的方法对于ButtonBar不起作用)

3个回答

23

经过一些尝试和错误,我至少找到了一种直接通过.fxml文件进行操作的方法:

您可以使用ButtonBar.buttonData属性为按钮元素分配值。

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

ButtonBar.ButtonData枚举类的文档非常简单明了。所以我找到了解决我的问题的“LEFT”和“RIGHT”枚举值。

仍然

如果有人知道/发现如何直接在SceneBuilder中完成此操作,我将非常感激!


3
在SceneBuilder中,您可以更改ButtonBarButtonOrder属性。如果您在开头而不是中间放置U+,则所有未知按钮将左对齐。但我还没有找到逐个更改此设置的方法;我的“左对齐”按钮似乎会居中... :( - hineroptera

2

enter image description here

在NetBeans的右侧通常可以通过检查器进入“布局”选项卡,找到“布局”部分并滚动至“变换”部分。

“Translate X”选项是用于调整按钮栏中按钮在x轴上的位置。


1
在Scene Builder右侧的按钮的布局选项卡中有“Transforms”属性。更改“Translate X”(按钮的水平位置会改变)。更改“Translate Y”会使该按钮的垂直位置发生变化。您需要先计算出按钮的位置。
我刚刚找到了它。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接