@DefaultProperty("items")
public class SplitPane
  Comment     Returned-by     Constructor-argument     Method-argument     Field-type     Type-bound     Links  

A control that has two or more sides, each separated by a divider, which can be dragged by the user to give more space to one of the sides, resulting in the other side shrinking by an equal amount.

Nodes can be positioned horizontally next to each other, or stacked vertically. This can be controlled by setting the orientationProperty().

The dividers in a SplitPane have the following behavior

Nodes needs to be placed inside a layout container before they are added into the SplitPane. If the node is not inside a layout container the maximum and minimum position of the divider will be the maximum and minimum size of the content.

A divider's position ranges from 0 to 1.0(inclusive). A position of 0 will place the divider at the left/top most edge of the SplitPane plus the minimum size of the node. A position of 1.0 will place the divider at the right/bottom most edge of the SplitPane minus the minimum size of the node. A divider position of 0.5 will place the the divider in the middle of the SplitPane. Setting the divider position greater than the node's maximum size position will result in the divider being set at the node's maximum size position. Setting the divider position less than the node's minimum size position will result in the divider being set at the node's minimum size position. Therefore the value set in setDividerPosition and setDividerPositions may not be the same as the value returned by getDividerPositions.

If there are more than two nodes in the SplitPane and the divider positions are set in such a way that the dividers cannot fit the nodes the dividers will be automatically adjusted by the SplitPane.

For example we have three nodes whose sizes and divider positions are

 Node 1: min 25 max 100
 Node 2: min 100 max 200
 Node 3: min 25 max 50
 divider 1: 0.40
 divider 2: 0.45
 

The result will be Node 1 size will be its pref size and divider 1 will be positioned 0.40, Node 2 size will be its min size and divider 2 position will be the min size of Node 2 plus divider 1 position, and the remaining space will be given to Node 3.

SplitPane sets focusTraversable to false.

Example:


 SplitPane sp = new SplitPane();
 final StackPane sp1 = new StackPane();
 sp1.getItems().add(new Button("Button One"));
 final StackPane sp2 = new StackPane();
 sp2.getItems().add(new Button("Button Two"));
 final StackPane sp3 = new StackPane();
 sp3.getItems().add(new Button("Button Three"));
 sp.getItems().addAll(sp1, sp2, sp3);
 sp.setDividerPositions(0.3f, 0.6f, 0.9f);
 

extends Control

Since:  JavaFX 2.0