Class SplitPane

All Implemented Interfaces:
Animation, Editable, StyleListener, Iterable<Component>

public class SplitPane extends Container

A Split Pane component.

A split pane can either be horizontal or vertical, and provides a draggable divider between two components. If the #orientation is #HORIZONTAL_SPLIT, then the child components will be laid out horizontally (side by side with a vertical bar as a divider). If the #orientation is #VERTICAL_SPLIT, then the components are laid out vertically (one above the other.

The bar divider bar includes arrows to collapse and expand the divider also.

Splitpane UI

The following is an example of a UI that is built around a split pane. This has an outer "horizontal" split pane, and the left side has a vertical split pane.

Collapsed:

Expanded:

  • Field Details

    • HORIZONTAL_SPLIT

      public static final int HORIZONTAL_SPLIT
      Constant used for orientation.
      See Also:
    • VERTICAL_SPLIT

      public static final int VERTICAL_SPLIT
      Constant used for orientation.
      See Also:
  • Constructor Details

    • SplitPane

      public SplitPane(SplitPane.Settings settings, Component topOrLeft, Component bottomOrRight)

      Creates a new SplitPane.

      Parameters
      • settings: The settings for the split pane (e.g. insets, styles, etc...).

      • topOrLeft: The component to place in the "top" (for vertical), or "left" (for horizontal).

      • bottomOrRight: The component to place in the "bottom" (for vertical) or "right" (for horizontal).

    • SplitPane

      public SplitPane(int orientation, Component topOrLeft, Component bottomOrRight, String minInset, String preferredInset, String maxInset)

      Creates a new SplitPane.

      Parameters
      • orientation: Either #HORIZONTAL_SPLIT or #VERTICAL_SPLIT

      • topOrLeft: The component to place in the "top" (for vertical), or "left" (for horizontal).

      • bottomOrRight: The component to place in the "bottom" (for vertical) or "right" (for horizontal).

      • minInset: The minimum allowable inset for the divider. The inset should be expressed as a string with both a value and a unit. E.g. "75%", "50mm", "200px".

      • preferredInset: The default preferred inset for the divider. The inset should be expressed as a string with both value and unit. E.g. "75%", "50mm", "20px".

      • maxInset: The maximum allowable inset for the divider. The inset should be expressed as a string with both a value and a unit. E.g. "75%", "50mm", "20px".

  • Method Details

    • changeInsets

      public void changeInsets(String minInset, String preferredInset, String maxInset)

      Changes the minimum, preferred, and maximum insets of the split pane. This will also update the current divider position to the supplied preferred inset.

      Parameters
      • minInset: The minimum inset. Can be expressed in pixels (px), millimetres (mm), or percent (%). E.g. "25%"

      • preferredInset: The preferred inset. Can be expressed in pixels (px), millimetres (mm), or percent (%). E.g. "25%"

      • maxInset: Can be expressed in pixels (px), millimetres (mm), or percent (%). E.g. "25%"

    • getBottomOrRightComponent

      public Component getBottomOrRightComponent()
      Gets the component that is currently placed in the bottom or right of the split pane.
    • getBottom

      public Component getBottom()
      Gets the component that is currently placed in the bottom of the split pane.
    • setBottom

      public void setBottom(Component cmp)

      Sets the component to be placed on the bottom of the split pane.

      Parameters
      • cmp: The component to place on the bottom.
    • getRight

      public Component getRight()
      Gets the component that is currently placed in the right of the split pane.
    • setRight

      public void setRight(Component cmp)

      Sets the component to be placed on the right of the split pane.

      Parameters
      • cmp: The component to place on the right.
    • getTopOrLeftComponent

      public Component getTopOrLeftComponent()
      Gets the component that is currently placed in the top or left of the split pane.
    • getTop

      public Component getTop()
      Gets the component that is currently placed in the top of the split pane.
    • setTop

      public void setTop(Component cmp)

      Sets the component that should be placed in the top section of the split pane.

      Parameters
      • cmp: The component to place on top.
    • getLeft

      public Component getLeft()
      Gets the component that is currently placed in the left of the split pane.
    • setLeft

      public void setLeft(Component cmp)

      Sets the component that should be placed in the left section of the split pane.

      Parameters
      • cmp: The component to place on the left.
    • toggleCollapsePreferred

      public void toggleCollapsePreferred()
      Toggles the split pane between collapsed state and preferred state. E.g. If the inset is currently not collapsed, it will collapse it. If it is collapsed, it will open to the last position that the user selected.
    • toggleExpandPreferred

      public void toggleExpandPreferred()
      Toggles the split pane between expanded state and preferred state. E.g. If the inset is currently expanded, then it will be moved to the last position that the user selected. If it is not expanded, it will expand it all the way.
    • expand

      public void expand()
      Expands the split pane. If it is currently completely collapsed, it will transition to the preferred position. If it is in the preferred position, it will expand all the way.
    • expand

      public void expand(boolean force)

      Expands the split pane. It will either expand it to the preferred position, or the maximum position depending on the value of the force parameter.

      Parameters
      • force: @param force If this is true, then it will only expand "all the way". It will skip the preferred position if it is currently in collapsed state.
    • collapse

      public void collapse()
      Collapses the aplit pane. If it is currently expanded, then it will shift to the preferred posiiton. If it is already in the preferred position, it will collapse all the way to the minimum position.
    • collapse

      public void collapse(boolean force)

      Collapses the split pane.

      Parameters
      • force: True to force it to collapse to minimum position (skipping preferred position if it is in expanded state).
    • setInset

      public void setInset(String inset, boolean clamp)

      Sets the inset of the divider explicitly. This The inset is measured from the top for vertical split panes and the left for horizontal split panes. Setting this to "50%" will move the divider to the middle point. Setting it to "0" would set it all the way to the left/top. This will clamp the value at the minimum and maximum offsets if clamp is true.

      Parameters
      • inset

      • clamp: True to clamp the inset to prevent it from running off the page.

    • setInset

      public void setInset(String inset)

      Sets the inset of the divider explicitly. This The inset is measured from the top for vertical split panes and the left for horizontal split panes. Setting this to "50%" will move the divider to the middle point. Setting it to "0" would set it all the way to the left/top. This will clamp the value at the minimum and maximum offsets.

      Parameters
      • inset
    • getPreferredInset

      public String getPreferredInset()

      Gets the string value of the preferred inset. E.g. "25mm", or "50%". Note: The preferred inset is changed automatically when the user drags it to a new location so the value returned here may be different than the inset supplied in the constructor.

      Returns

      The current preferred inset of the divider.

    • setPreferredInset

      public void setPreferredInset(String inset)

      Sets the preferred inset of this split pane. The preferred inset will be automatically changed whenever the user explicitly moves the divider to a new position.

      Parameters
      • inset: The inset. E.g. "2mm", "25%", "200px".
    • getMinInset

      public String getMinInset()
      Gets the string value of the minimum inset of the divider. E.g. "25mm", or "50%".
    • setMinInset

      public void setMinInset(String inset)

      Sets the minimum inset allowed for the divider.

      Parameters
      • inset: The inset. E.g. "2mm", "10%", "200px"
    • getMaxInset

      public String getMaxInset()
      Gets the string value of the maximum inset of the divider. E.g. "25mm", or "50%"
    • setMaxInset

      public void setMaxInset(String inset)

      Sets the maximum inset allowed for the divider.

      Parameters
      • inset: The inset. E.g. "2mm", "10%", "200px"