How to right align a button in Java FX toolbar
Add a pane with no content which always grows to fit available space between the left aligned tools in the bar and right aligned ones.
<?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>
(Verified in Scene Builder 11.0.0)
One option: Use two ToolBar containers wrapped with an HBox container. Put the Help button in the right ToolBar. Put the left-aligned buttons in the left toolbar. For the left ToolBar, set the HGrow to ALWAYS
. For the Right ToolBar, set HGrow to NEVER
. For each ToolBar, set all Sizes to USE_COMPUTED_SIZE
.
Here is the relevant 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>
This is the hierarchy as displayed in Scene Builder:
This is the display within Scene Builder:
If you could place ur button inside a stack pane then u could make use of Stackpane's alignment property that takes javafx.geometry.Pos - The alignment of the child within the stackpane.For example in ur case:
<StackPane ><Button translateY="-15" translateX="15" StackPane.alignment="TOP_RIGHT"/></StackPane>