Module javafx.controls
Package javafx.scene.control.skin

# Class MenuBarSkin

java.lang.Object
javafx.scene.control.SkinBase<MenuBar>
javafx.scene.control.skin.MenuBarSkin

All Implemented Interfaces:
  `Skin<MenuBar>`

    public class MenuBarSkin
    extends SkinBase<MenuBar>

Default skin implementation for the `MenuBar` control. In essence it is a simple toolbar. For the time being there is no overflow behavior and we just hide nodes which fall outside the bounds.

Since:
  9
See Also:
  `MenuBar`

- ## Property Summary

  Properties
  Type | Property | Description
  --- | --- | ---
  `ObjectProperty<Pos>` | `containerAlignment` | Specifies the alignment of the menu buttons inside the MenuBar (by default it is Pos.TOP_LEFT).
  `DoubleProperty` | `spacing` | Specifies the spacing between menu buttons on the MenuBar.

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `MenuBarSkin​(MenuBar control)` | Creates a new MenuBarSkin instance, installing the necessary child nodes into the Control `children` list, as well as the necessary input mappings for handling key, mouse, etc events.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `ObjectProperty<Pos>` | `containerAlignmentProperty()` | Specifies the alignment of the menu buttons inside the MenuBar (by default it is Pos.TOP_LEFT).
  `static List<CssMetaData<? extends Styleable,​?>>` | `getClassCssMetaData()` | Returns the CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
  `Pos` | `getContainerAlignment()` | Gets the value of the property containerAlignment.
  `double` | `getSpacing()` | Gets the value of the property spacing.
  `void` | `setContainerAlignment​(Pos value)` | Sets the value of the property containerAlignment.
  `static void` | `setDefaultSystemMenuBar​(MenuBar menuBar)` | Set the default system menu bar.
  `void` | `setSpacing​(double value)` | Sets the value of the property spacing.
  `DoubleProperty` | `spacingProperty()` | Specifies the spacing between menu buttons on the MenuBar.

  ### Methods declared in class javafx.scene.control.SkinBase

  `computeBaselineOffset, computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, consumeMouseEvents, executeAccessibleAction, getChildren, getCssMetaData, layoutChildren, layoutInArea, layoutInArea, layoutInArea, positionInArea, positionInArea, pseudoClassStateChanged, queryAccessibleAttribute, registerChangeListener, registerInvalidationListener, registerListChangeListener, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, unregisterChangeListeners, unregisterInvalidationListeners, unregisterListChangeListeners`

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods declared in interface javafx.scene.control.Skin

  `dispose, getNode, getSkinnable`

- ## Property Details

  - ### spacing

    public final DoubleProperty spacingProperty
    Specifies the spacing between menu buttons on the MenuBar.
    See Also:
      `getSpacing()`, `setSpacing(double)`

  - ### containerAlignment

    public final ObjectProperty<Pos> containerAlignmentProperty
    Specifies the alignment of the menu buttons inside the MenuBar (by default it is Pos.TOP_LEFT).
    See Also:
      `getContainerAlignment()`, `setContainerAlignment(Pos)`

- ## Constructor Details

  - ### MenuBarSkin

    public MenuBarSkin​(MenuBar control)
    Creates a new MenuBarSkin instance, installing the necessary child nodes into the Control `children` list, as well as the necessary input mappings for handling key, mouse, etc events.
    Parameters:
      `control` - The control that this skin should be installed onto.

- ## Method Details

  - ### setDefaultSystemMenuBar

    public static void setDefaultSystemMenuBar​(MenuBar menuBar)
    Set the default system menu bar. This allows an application to keep menu in the system menu bar after the last Window is closed.
    Parameters:
      `menuBar` - the menu bar

  - ### setSpacing

    public final void setSpacing​(double value)
    Sets the value of the property spacing.
    Property description:
      Specifies the spacing between menu buttons on the MenuBar.

  - ### getSpacing

    public final double getSpacing()
    Gets the value of the property spacing.
    Property description:
      Specifies the spacing between menu buttons on the MenuBar.

  - ### spacingProperty

    public final DoubleProperty spacingProperty()
    Specifies the spacing between menu buttons on the MenuBar.
    See Also:
      `getSpacing()`, `setSpacing(double)`

  - ### setContainerAlignment

    public final void setContainerAlignment​(Pos value)
    Sets the value of the property containerAlignment.
    Property description:
      Specifies the alignment of the menu buttons inside the MenuBar (by default it is Pos.TOP_LEFT).

  - ### getContainerAlignment

    public final Pos getContainerAlignment()
    Gets the value of the property containerAlignment.
    Property description:
      Specifies the alignment of the menu buttons inside the MenuBar (by default it is Pos.TOP_LEFT).

  - ### containerAlignmentProperty

    public final ObjectProperty<Pos> containerAlignmentProperty()
    Specifies the alignment of the menu buttons inside the MenuBar (by default it is Pos.TOP_LEFT).
    See Also:
      `getContainerAlignment()`, `setContainerAlignment(Pos)`

  - ### getClassCssMetaData

    public static List<CssMetaData<? extends Styleable,​?>> getClassCssMetaData()
    Returns the CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
    Returns:
      the CssMetaData associated with this class, which may include the CssMetaData of its superclasses