Reputation: 79
In JavaFX, is there something similar to setLayout();
or setBounds();
?
For example, I want to position a button to a position that I desire.
Upvotes: 7
Views: 27640
Reputation: 349
In addition to what others already mentioned, if you could place your button (or any node for that matter) inside a StackPane
, then you could make use of the StackPane
's alignment property that takes javafx.geometry.Pos
(the alignment of the child within the StackPane
). For example in your case:
<StackPane>
<Button translateY="-15" translateX="15" StackPane.alignment="TOP_RIGHT"/>
</StackPane>
Upvotes: -2
Reputation: 36742
Everything on JavaFX scene graph is a Node. Each node has a X-coordinate and a Y-coordinate. But there are different ways to set/change position
of a child component. It depends on the layout manager used to show the component on the scene graph.
Group
, which do not compute child's default position and you can use layoutX
and layoutY
directly on themRegion
, which automatically
compute child's default position using layoutX
and inorder to adjust the locations of the components from their default positions you need to use translateX
and translateY
values.From the docs :
If the node is managed and has a Region as its parent, then the layout region will set layoutX according to its own layout policy. If the node is unmanaged or parented by a Group, then the application may set layoutX directly to position it.
Upvotes: 15
Reputation: 18415
You should read up on the Node class (the long text at the beginning), and then especially relocate, setLayoutX (and Y) and setTranslateX (and Y).
Upvotes: 1