Base class for layout panes which need to expose the children list as public so that users of the subclass can freely add/remove children.
This class may be used directly in cases where absolute positioning of children is required since it does not perform layout beyond resizing resizable children to their preferred sizes. It is the application's responsibility to position the children since the pane leaves the positions alone during layout. For example:
Pane canvas = new Pane(); canvas.setStyle("-fx-background-color: black;"); canvas.setPrefSize(200,200); Circle circle = new Circle(50,Color.BLUE); circle.relocate(20, 20); Rectangle rectangle = new Rectangle(100,100,Color.RED); rectangle.relocate(70,70); canvas.getChildren().addAll(circle,rectangle);
Note: if an application needs children to be kept aligned within a parent (centered,
positioned at top-left, etc), it should use a
Pane resizes each managed child regardless of the child's visible property value; unmanaged children are ignored for all layout calculations.
A pane's parent will resize the pane within the pane's resizable range during layout. By default the pane computes this range based on its content as outlined in the table below:
|minimum||left plus right insets.||top plus bottom insets.|
|preferred||width required to encompass each child at its current x location and preferred width.||height required to encompass each child at its current y location and preferred height.|
A pane's unbounded maximum width and height are an indication to the parent that it may be resized beyond its preferred size to fill whatever space is assigned to it.
Pane provides properties for setting the size range directly. These properties default to the sentinel value Region.USE_COMPUTED_SIZE, however the application may set them to other values as needed:
Applications may restore the computed values by setting these properties back to Region.USE_COMPUTED_SIZE.
Pane does not clip its content by default, so it is possible that childrens' bounds may extend outside its own bounds, either if children are positioned at negative coordinates or the pane is resized smaller than its preferred size.