我正在使用Java FX场景构建器构建UI,我希望工具栏中的按钮向工具栏的右侧浮动。我试过更改父(工具栏)和按钮的节点方向,但似乎都被忽略了。
答案 0 :(得分:76)
添加一个没有内容的窗格,该窗格总是增长以适应栏中左对齐工具和右对齐工具之间的可用空间。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<ToolBar prefHeight="40.0" prefWidth="318.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8">
<Button text="Apples" />
<Button text="Oranges" />
<Pane HBox.hgrow="ALWAYS" />
<Button text="Help" />
</ToolBar>
答案 1 :(得分:2)
(在 Scene Builder 11.0.0 中验证)
一个选项:使用两个用 HBox 容器包装的 ToolBar 容器。将帮助按钮放在右侧的工具栏中。将左对齐按钮放在左侧工具栏中。对于左侧工具栏,将 HGrow 设置为 ALWAYS
。对于右侧工具栏,将 HGrow 设置为 NEVER
。对于每个工具栏,将所有大小设置为 USE_COMPUTED_SIZE
。
这是相关的fxml:
<HBox VBox.vgrow="NEVER">
<children>
<ToolBar HBox.hgrow="ALWAYS">
<items>
<Button text="Apples" />
<Button text="Oranges" />
</items>
</ToolBar>
<ToolBar HBox.hgrow="NEVER">
<items>
<Button text="Help" />
</items>
</ToolBar>
</children>
</HBox>
这是在 Scene Builder 中显示的层次结构:
这是 Scene Builder 中的显示:
答案 2 :(得分:0)
BorderPane mainBorderPane = new BorderPane();
BorderPane ToolBorderPane = new BorderPane();
ToolBar tBarLeft=new ToolBar();
ToolBar tBarRight=new ToolBar();
ToolBorderPane.setLeft(tBarLeft);
ToolBorderPane.setRight(tBarRight);
mainBorderPane.setTop(ToolBorderPane);
... ... 为您的左调整项添加tBarLeft和 您的权利要求项添加tBarRight
答案 3 :(得分:-1)
如果您可以将ur按钮放置在堆栈窗格中,那么您可以利用Stackpane的alignment属性,该属性采用javafx.geometry.Pos-子对象在stackpane中的对齐方式。例如,在ur情况下:
<StackPane >
<Button translateY="-15" translateX="15" StackPane.alignment="TOP_RIGHT"/>
</StackPane>