Module javafx.controls
Package javafx.scene.control

# Class PopupControl

java.lang.Object
javafx.stage.Window
javafx.stage.PopupWindow
javafx.scene.control.PopupControl

All Implemented Interfaces:
  `Styleable`, `EventTarget`, `Skinnable`

Direct Known Subclasses:
  `ContextMenu`, `Tooltip`

public class PopupControl extends PopupWindow implements Skinnable, Styleable
An extension of PopupWindow that allows for CSS styling.

Since:
  JavaFX 2.0

## Property Summary

Properties
Type
Property
Description
`final StringProperty`
`id`
The id of this `PopupControl`.
`final DoubleProperty`
`maxHeight`
Property for overriding the control's computed maximum height.
`final DoubleProperty`
`maxWidth`
Property for overriding the control's computed maximum width.
`final DoubleProperty`
`minHeight`
Property for overriding the control's computed minimum height.
`final DoubleProperty`
`minWidth`
Property for overriding the control's computed minimum width.
`final DoubleProperty`
`prefHeight`
Property for overriding the control's computed preferred height.
`final DoubleProperty`
`prefWidth`
Property for overriding the control's computed preferred width.
`final ObjectProperty<Skin<?>>`
`skin`
Skin is responsible for rendering this `PopupControl`.
`final StringProperty`
`style`

### Properties inherited from class javafx.stage.PopupWindow

`anchorLocation, anchorX, anchorY, autoFix, autoHide, consumeAutoHidingEvents, hideOnEscape, onAutoHide, ownerNode, ownerWindow`

### Properties inherited from class javafx.stage.Window

`eventDispatcher, focused, forceIntegerRenderScale, height, onCloseRequest, onHidden, onHiding, onShowing, onShown, opacity, outputScaleX, outputScaleY, renderScaleX, renderScaleY, scene, showing, width, x, y`

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`protected class`
`PopupControl.CSSBridge`
The link between the popup window and the scenegraph.

## Nested classes/interfaces inherited from class javafx.stage.PopupWindow

`PopupWindow.AnchorLocation`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected PopupControl.CSSBridge`
`bridge`
We need a special root node, except we can't replace the special root node already in the PopupControl.
`static final double`
`USE_COMPUTED_SIZE`
Sentinel value which can be passed to a control's setMinWidth(), setMinHeight(), setPrefWidth(), setPrefHeight(), setMaxWidth(), setMaxHeight() methods to reset the control's size constraint back to it's intrinsic size returned by computeMinWidth(), computeMinHeight(), computePrefWidth(), computePrefHeight(), computeMaxWidth(), or computeMaxHeight().
`static final double`
`USE_PREF_SIZE`
Sentinel value which can be passed to a control's setMinWidth(), setMinHeight(), setMaxWidth() or setMaxHeight() methods to indicate that the preferred dimension should be used for that max and/or min constraint.

## Constructor Summary

Constructors
Constructor
Description
`PopupControl()`
Create a new empty PopupControl.

## Method Summary

Modifier and Type
Method
Description
`protected Skin<?>`
`createDefaultSkin()`
Create a new instance of the default skin for this control.
`static List<CssMetaData<? extends Styleable,?>>`
`getClassCssMetaData()`
`List<CssMetaData<? extends Styleable,?>>`
`getCssMetaData()`
The CssMetaData of this Styleable.
`final String`
`getId()`
The id of this `PopupControl`.
`final double`
`getMaxHeight()`
Property for overriding the control's computed maximum height.
`final double`
`getMaxWidth()`
Property for overriding the control's computed maximum width.
`final double`
`getMinHeight()`
Property for overriding the control's computed minimum height.
`final double`
`getMinWidth()`
Property for overriding the control's computed minimum width.
`final double`
`getPrefHeight()`
Property for overriding the control's computed preferred height.
`final double`
`getPrefWidth()`
Property for overriding the control's computed preferred width.
`final ObservableSet<PseudoClass>`
`getPseudoClassStates()`
Return the pseudo-class state of this Styleable.
`final Skin<?>`
`getSkin()`
Gets the value of the `skin` property.
`final String`
`getStyle()`
A string representation of the CSS style associated with this specific `PopupControl`.
`Node`
`getStyleableNode()`
Returns the Node that represents this Styleable object.
`Styleable`
`getStyleableParent()`
Return the parent of this Styleable, or null if there is no parent.
`final ObservableList<String>`
`getStyleClass()`
Returns the list of String identifiers that make up the styleClass for this PopupControl.
`String`
`getTypeSelector()`
The type of this `Styleable` that is to be used in selector matching.
`final StringProperty`
`idProperty()`
The id of this `PopupControl`.
`final double`
`maxHeight(double width)`
Called during layout to determine the maximum height for this node.
`final DoubleProperty`
`maxHeightProperty()`
Property for overriding the control's computed maximum height.
`final double`
`maxWidth(double height)`
Called during layout to determine the maximum width for this node.
`final DoubleProperty`
`maxWidthProperty()`
Property for overriding the control's computed maximum width.
`final double`
`minHeight(double width)`
Called during layout to determine the minimum height for this node.
`final DoubleProperty`
`minHeightProperty()`
Property for overriding the control's computed minimum height.
`final double`
`minWidth(double height)`
Called during layout to determine the minimum width for this node.
`final DoubleProperty`
`minWidthProperty()`
Property for overriding the control's computed minimum width.
`final double`
`prefHeight(double width)`
Called during layout to determine the preferred height for this node.
`final DoubleProperty`
`prefHeightProperty()`
Property for overriding the control's computed preferred height.
`final double`
`prefWidth(double height)`
Called during layout to determine the preferred width for this node.
`final DoubleProperty`
`prefWidthProperty()`
Property for overriding the control's computed preferred width.
`final void`
`pseudoClassStateChanged(PseudoClass pseudoClass, boolean active)`
`final void`
`setId(String value)`
Sets the id of this `PopupControl`.
`final void`
`setMaxHeight(double value)`
Property for overriding the control's computed maximum height.
`void`
`setMaxSize(double maxWidth, double maxHeight)`
Convenience method for overriding the control's computed maximum width and height.
`final void`
`setMaxWidth(double value)`
Property for overriding the control's computed maximum width.
`final void`
`setMinHeight(double value)`
Property for overriding the control's computed minimum height.
`void`
`setMinSize(double minWidth, double minHeight)`
Convenience method for overriding the control's computed minimum width and height.
`final void`
`setMinWidth(double value)`
Property for overriding the control's computed minimum width.
`final void`
`setPrefHeight(double value)`
Property for overriding the control's computed preferred height.
`void`
`setPrefSize(double prefWidth, double prefHeight)`
Convenience method for overriding the control's computed preferred width and height.
`final void`
`setPrefWidth(double value)`
Property for overriding the control's computed preferred width.
`final void`
`setSkin(Skin<?> value)`
Sets the value of the `skin` property.
`final void`
`setStyle(String value)`
A string representation of the CSS style associated with this specific `PopupControl`.
`final ObjectProperty<Skin<?>>`
`skinProperty()`
Skin is responsible for rendering this `PopupControl`.
`final StringProperty`
`styleProperty()`

### Methods inherited from class javafx.stage.PopupWindow

`anchorLocationProperty, anchorXProperty, anchorYProperty, autoFixProperty, autoHideProperty, consumeAutoHidingEventsProperty, getAnchorLocation, getAnchorX, getAnchorY, getConsumeAutoHidingEvents, getOnAutoHide, getOwnerNode, getOwnerWindow, hide, hideOnEscapeProperty, isAutoFix, isAutoHide, isHideOnEscape, onAutoHideProperty, ownerNodeProperty, ownerWindowProperty, setAnchorLocation, setAnchorX, setAnchorY, setAutoFix, setAutoHide, setConsumeAutoHidingEvents, setHideOnEscape, setOnAutoHide, setScene, show, show, show`

### Methods inherited from class javafx.stage.Window

`addEventFilter, addEventHandler, buildEventDispatchChain, centerOnScreen, eventDispatcherProperty, fireEvent, focusedProperty, forceIntegerRenderScaleProperty, getEventDispatcher, getHeight, getOnCloseRequest, getOnHidden, getOnHiding, getOnShowing, getOnShown, getOpacity, getOutputScaleX, getOutputScaleY, getProperties, getRenderScaleX, getRenderScaleY, getScene, getUserData, getWidth, getWindows, getX, getY, hasProperties, heightProperty, isFocused, isForceIntegerRenderScale, isShowing, onCloseRequestProperty, onHiddenProperty, onHidingProperty, onShowingProperty, onShownProperty, opacityProperty, outputScaleXProperty, outputScaleYProperty, removeEventFilter, removeEventHandler, renderScaleXProperty, renderScaleYProperty, requestFocus, sceneProperty, setEventDispatcher, setEventHandler, setForceIntegerRenderScale, setHeight, setOnCloseRequest, setOnHidden, setOnHiding, setOnShowing, setOnShown, setOpacity, setRenderScaleX, setRenderScaleY, setUserData, setWidth, setX, setY, show, showingProperty, sizeToScene, widthProperty, xProperty, yProperty`

### Methods inherited from class java.lang.Object

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

## Property Details

### id

public final StringProperty idProperty
The id of this `PopupControl`. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (CSS ID Specification).

Default value:
  null
See Also:
  - `getId()`
  - `setId(String)`
  - `idProperty()`

### style

public final StringProperty styleProperty

See Also:
  - `getStyle()`
  - `setStyle(String)`
  - `styleProperty()`

### skin

public final ObjectProperty<Skin<?>> skinProperty
Skin is responsible for rendering this `PopupControl`. From the perspective of the `PopupControl`, the `Skin` is a black box. It listens and responds to changes in state in a `PopupControl`.

There is a one-to-one relationship between a `PopupControl` and its `Skin`. Every `Skin` maintains a back reference to the `PopupControl`.

A skin may be null.

Specified by:
  `skinProperty` in interface `Skinnable`
Returns:
  the skin property for this control
See Also:
  - `getSkin()`
  - `setSkin(Skin)`
  - `skinProperty()`

### minWidth

public final DoubleProperty minWidthProperty
Property for overriding the control's computed minimum width. This should only be set if the control's internally computed minimum width doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMinWidth(forHeight)` will return the control's internally computed minimum width.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMinWidth(forHeight)` to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

See Also:
  - `getMinWidth()`
  - `setMinWidth(double)`
  - `minWidthProperty()`

### minHeight

public final DoubleProperty minHeightProperty
Property for overriding the control's computed minimum height. This should only be set if the control's internally computed minimum height doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMinHeight(forWidth)` will return the control's internally computed minimum height.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMinHeight(forWidth)` to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

See Also:
  - `getMinHeight()`
  - `setMinHeight(double)`
  - `minHeightProperty()`

### prefWidth

public final DoubleProperty prefWidthProperty
Property for overriding the control's computed preferred width. This should only be set if the control's internally computed preferred width doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getPrefWidth(forHeight)` will return the control's internally computed preferred width.

See Also:
  - `getPrefWidth()`
  - `setPrefWidth(double)`
  - `prefWidthProperty()`

### prefHeight

public final DoubleProperty prefHeightProperty
Property for overriding the control's computed preferred height. This should only be set if the control's internally computed preferred height doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getPrefHeight(forWidth)` will return the control's internally computed preferred width.

See Also:
  - `getPrefHeight()`
  - `setPrefHeight(double)`
  - `prefHeightProperty()`

### maxWidth

public final DoubleProperty maxWidthProperty
Property for overriding the control's computed maximum width. This should only be set if the control's internally computed maximum width doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMaxWidth(forHeight)` will return the control's internally computed maximum width.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMaxWidth(forHeight)` to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

See Also:
  - `getMaxWidth()`
  - `setMaxWidth(double)`
  - `maxWidthProperty()`

### maxHeight

public final DoubleProperty maxHeightProperty
Property for overriding the control's computed maximum height. This should only be set if the control's internally computed maximum height doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMaxHeight(forWidth)` will return the control's internally computed maximum height.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMaxHeight(forWidth)` to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

See Also:
  - `getMaxHeight()`
  - `setMaxHeight(double)`
  - `maxHeightProperty()`

## Field Details

### USE_PREF_SIZE

public static final double USE_PREF_SIZE
Sentinel value which can be passed to a control's setMinWidth(), setMinHeight(), setMaxWidth() or setMaxHeight() methods to indicate that the preferred dimension should be used for that max and/or min constraint.

See Also:
  - Constant Field Values

### USE_COMPUTED_SIZE

public static final double USE_COMPUTED_SIZE
Sentinel value which can be passed to a control's setMinWidth(), setMinHeight(), setPrefWidth(), setPrefHeight(), setMaxWidth(), setMaxHeight() methods to reset the control's size constraint back to it's intrinsic size returned by computeMinWidth(), computeMinHeight(), computePrefWidth(), computePrefHeight(), computeMaxWidth(), or computeMaxHeight().

See Also:
  - Constant Field Values

### bridge

protected PopupControl.CSSBridge bridge
We need a special root node, except we can't replace the special root node already in the PopupControl. So we'll set our own special almost-root node that is a child of the root. This special root node is responsible for mapping the id, styleClass, and style defined on the PopupControl such that CSS will read the values from the PopupControl, and then apply CSS state to that special node. The node will then be able to pass cssSet calls along, such that any subclass of PopupControl will be able to use the Styleable properties and we'll be able to style it from CSS, in such a way that it participates and applies to the skin, exactly the way that normal Skin's work for normal Controls.

Since:
  JavaFX 2.1

## Constructor Details

### PopupControl

public PopupControl()
Create a new empty PopupControl.

## Method Details

### idProperty

public final StringProperty idProperty()
The id of this `PopupControl`. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (CSS ID Specification).

Default value:
  null
Returns:
  the id property
See Also:
  - `getId()`
  - `setId(String)`

### setId

public final void setId(String value)
Sets the id of this `PopupControl`. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (CSS ID Specification).

Default value:
  null
Parameters:
  `value` - the id assigned to this `PopupControl` using the `setId` method or `null`, if no id has been assigned.

### getId

public final String getId()
The id of this `PopupControl`. This simple string identifier is useful for finding a specific Node within the scene graph. While the id of a Node should be unique within the scene graph, this uniqueness is not enforced. This is analogous to the "id" attribute on an HTML element (CSS ID Specification).

Specified by:
  `getId` in interface `Styleable`
Default value:
  null
Returns:
  the id assigned to this `PopupControl` using the `setId` method or `null`, if no id has been assigned.

### getStyleClass

public final ObservableList<String> getStyleClass()
Returns the list of String identifiers that make up the styleClass for this PopupControl.

Specified by:
  `getStyleClass` in interface `Styleable`
Returns:
  a list of String identifiers which can be used to logically group Nodes, specifically for an external style engine
See Also:
  - CSS3 class selectors

### setStyle

public final void setStyle(String value)
A string representation of the CSS style associated with this specific `PopupControl`. This is analogous to the "style" attribute of an HTML element. Note that, like the HTML style attribute, this variable contains style properties and values and not the selector portion of a style rule.

Default value:
  empty string
Parameters:
  `value` - The inline CSS style to use for this `PopupControl`. `null` is implicitly converted to an empty String.

### getStyle

public final String getStyle()
A string representation of the CSS style associated with this specific `PopupControl`. This is analogous to the "style" attribute of an HTML element. Note that, like the HTML style attribute, this variable contains style properties and values and not the selector portion of a style rule.

Specified by:
  `getStyle` in interface `Styleable`
Default value:
  empty string
Returns:
  The inline CSS style associated with this `PopupControl`. If this `PopupControl` does not have an inline style, an empty String is returned.

### styleProperty

public final StringProperty styleProperty()

Returns:
  the `style` property
See Also:
  - `getStyle()`
  - `setStyle(String)`

### skinProperty

public final ObjectProperty<Skin<?>> skinProperty()
Skin is responsible for rendering this `PopupControl`. From the perspective of the `PopupControl`, the `Skin` is a black box. It listens and responds to changes in state in a `PopupControl`.

There is a one-to-one relationship between a `PopupControl` and its `Skin`. Every `Skin` maintains a back reference to the `PopupControl`.

A skin may be null.

Specified by:
  `skinProperty` in interface `Skinnable`
Returns:
  the `skin` property
See Also:
  - `getSkin()`
  - `setSkin(Skin)`

### setSkin

public final void setSkin(Skin<?> value)
Sets the value of the `skin` property.

Specified by:
  `setSkin` in interface `Skinnable`
Property description:
  Skin is responsible for rendering this `PopupControl`. From the perspective of the `PopupControl`, the `Skin` is a black box. It listens and responds to changes in state in a `PopupControl`.

  There is a one-to-one relationship between a `PopupControl` and its `Skin`. Every `Skin` maintains a back reference to the `PopupControl`.

  A skin may be null.

Parameters:
  `value` - the value for the `skin` property
See Also:
  - `getSkin()`
  - `skinProperty()`

### getSkin

public final Skin<?> getSkin()
Gets the value of the `skin` property.

Specified by:
  `getSkin` in interface `Skinnable`
Property description:
  Skin is responsible for rendering this `PopupControl`. From the perspective of the `PopupControl`, the `Skin` is a black box. It listens and responds to changes in state in a `PopupControl`.

  There is a one-to-one relationship between a `PopupControl` and its `Skin`. Every `Skin` maintains a back reference to the `PopupControl`.

  A skin may be null.

Returns:
  the value of the `skin` property
See Also:
  - `setSkin(Skin)`
  - `skinProperty()`

### setMinWidth

public final void setMinWidth(double value)
Property for overriding the control's computed minimum width. This should only be set if the control's internally computed minimum width doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMinWidth(forHeight)` will return the control's internally computed minimum width.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMinWidth(forHeight)` to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

Parameters:
  `value` - the minimum width

### getMinWidth

public final double getMinWidth()
Property for overriding the control's computed minimum width. This should only be set if the control's internally computed minimum width doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMinWidth(forHeight)` will return the control's internally computed minimum width.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMinWidth(forHeight)` to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

Returns:
  the minimum width

### minWidthProperty

public final DoubleProperty minWidthProperty()
Property for overriding the control's computed minimum width. This should only be set if the control's internally computed minimum width doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMinWidth(forHeight)` will return the control's internally computed minimum width.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMinWidth(forHeight)` to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

Returns:
  the `minWidth` property
See Also:
  - `getMinWidth()`
  - `setMinWidth(double)`

### setMinHeight

public final void setMinHeight(double value)
Property for overriding the control's computed minimum height. This should only be set if the control's internally computed minimum height doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMinHeight(forWidth)` will return the control's internally computed minimum height.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMinHeight(forWidth)` to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

Parameters:
  `value` - the minimum height

### getMinHeight

public final double getMinHeight()
Property for overriding the control's computed minimum height. This should only be set if the control's internally computed minimum height doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMinHeight(forWidth)` will return the control's internally computed minimum height.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMinHeight(forWidth)` to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

Returns:
  the minimum height

### minHeightProperty

public final DoubleProperty minHeightProperty()
Property for overriding the control's computed minimum height. This should only be set if the control's internally computed minimum height doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMinHeight(forWidth)` will return the control's internally computed minimum height.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMinHeight(forWidth)` to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

Returns:
  the `minHeight` property
See Also:
  - `getMinHeight()`
  - `setMinHeight(double)`

### setMinSize

public void setMinSize(double minWidth, double minHeight)
Convenience method for overriding the control's computed minimum width and height. This should only be called if the control's internally computed minimum size doesn't meet the application's layout needs.

Parameters:
  `minWidth` - the override value for minimum width
  `minHeight` - the override value for minimum height
See Also:
  - `setMinWidth(double)`
  - `setMinHeight(double)`

### setPrefWidth

public final void setPrefWidth(double value)
Property for overriding the control's computed preferred width. This should only be set if the control's internally computed preferred width doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getPrefWidth(forHeight)` will return the control's internally computed preferred width.

Parameters:
  `value` - the preferred width

### getPrefWidth

public final double getPrefWidth()
Property for overriding the control's computed preferred width. This should only be set if the control's internally computed preferred width doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getPrefWidth(forHeight)` will return the control's internally computed preferred width.

Returns:
  the preferred width

### prefWidthProperty

public final DoubleProperty prefWidthProperty()
Property for overriding the control's computed preferred width. This should only be set if the control's internally computed preferred width doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getPrefWidth(forHeight)` will return the control's internally computed preferred width.

Returns:
  the `prefWidth` property
See Also:
  - `getPrefWidth()`
  - `setPrefWidth(double)`

### setPrefHeight

public final void setPrefHeight(double value)
Property for overriding the control's computed preferred height. This should only be set if the control's internally computed preferred height doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getPrefHeight(forWidth)` will return the control's internally computed preferred width.

Parameters:
  `value` - the preferred height

### getPrefHeight

public final double getPrefHeight()
Property for overriding the control's computed preferred height. This should only be set if the control's internally computed preferred height doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getPrefHeight(forWidth)` will return the control's internally computed preferred width.

Returns:
  the preferred height

### prefHeightProperty

public final DoubleProperty prefHeightProperty()
Property for overriding the control's computed preferred height. This should only be set if the control's internally computed preferred height doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getPrefHeight(forWidth)` will return the control's internally computed preferred width.

Returns:
  the `prefHeight` property
See Also:
  - `getPrefHeight()`
  - `setPrefHeight(double)`

### setPrefSize

public void setPrefSize(double prefWidth, double prefHeight)
Convenience method for overriding the control's computed preferred width and height. This should only be called if the control's internally computed preferred size doesn't meet the application's layout needs.

Parameters:
  `prefWidth` - the override value for preferred width
  `prefHeight` - the override value for preferred height
See Also:
  - `setPrefWidth(double)`
  - `setPrefHeight(double)`

### setMaxWidth

public final void setMaxWidth(double value)
Property for overriding the control's computed maximum width. This should only be set if the control's internally computed maximum width doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMaxWidth(forHeight)` will return the control's internally computed maximum width.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMaxWidth(forHeight)` to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

Parameters:
  `value` - the maximum width

### getMaxWidth

public final double getMaxWidth()
Property for overriding the control's computed maximum width. This should only be set if the control's internally computed maximum width doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMaxWidth(forHeight)` will return the control's internally computed maximum width.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMaxWidth(forHeight)` to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

Returns:
  the maximum width

### maxWidthProperty

public final DoubleProperty maxWidthProperty()
Property for overriding the control's computed maximum width. This should only be set if the control's internally computed maximum width doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMaxWidth(forHeight)` will return the control's internally computed maximum width.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMaxWidth(forHeight)` to return the control's preferred width, enabling applications to easily restrict the resizability of the control.

Returns:
  the `maxWidth` property
See Also:
  - `getMaxWidth()`
  - `setMaxWidth(double)`

### setMaxHeight

public final void setMaxHeight(double value)
Property for overriding the control's computed maximum height. This should only be set if the control's internally computed maximum height doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMaxHeight(forWidth)` will return the control's internally computed maximum height.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMaxHeight(forWidth)` to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

Parameters:
  `value` - the maximum height

### getMaxHeight

public final double getMaxHeight()
Property for overriding the control's computed maximum height. This should only be set if the control's internally computed maximum height doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMaxHeight(forWidth)` will return the control's internally computed maximum height.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMaxHeight(forWidth)` to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

Returns:
  the maximum height

### maxHeightProperty

public final DoubleProperty maxHeightProperty()
Property for overriding the control's computed maximum height. This should only be set if the control's internally computed maximum height doesn't meet the application's layout needs.

Defaults to the `USE_COMPUTED_SIZE` flag, which means that `getMaxHeight(forWidth)` will return the control's internally computed maximum height.

Setting this value to the `USE_PREF_SIZE` flag will cause `getMaxHeight(forWidth)` to return the control's preferred height, enabling applications to easily restrict the resizability of the control.

Returns:
  the `maxHeight` property
See Also:
  - `getMaxHeight()`
  - `setMaxHeight(double)`

### setMaxSize

public void setMaxSize(double maxWidth, double maxHeight)
Convenience method for overriding the control's computed maximum width and height. This should only be called if the control's internally computed maximum size doesn't meet the application's layout needs.

Parameters:
  `maxWidth` - the override value for maximum width
  `maxHeight` - the override value for maximum height
See Also:
  - `setMaxWidth(double)`
  - `setMaxHeight(double)`

### minWidth

public final double minWidth(double height)
Called during layout to determine the minimum width for this node. Returns the value from `minWidth(forHeight)` unless the application overrode the minimum width by setting the minWidth property.

Parameters:
  `height` - the height
Returns:
  the minimum width that this node should be resized to during layout
See Also:
  - `setMinWidth(double)`

### minHeight

public final double minHeight(double width)
Called during layout to determine the minimum height for this node. Returns the value from `minHeight(forWidth)` unless the application overrode the minimum height by setting the minHeight property.

Parameters:
  `width` - The width
Returns:
  the minimum height that this node should be resized to during layout
See Also:
  - `setMinHeight(double)`

### prefWidth

public final double prefWidth(double height)
Called during layout to determine the preferred width for this node. Returns the value from `prefWidth(forHeight)` unless the application overrode the preferred width by setting the prefWidth property.

Parameters:
  `height` - the height
Returns:
  the preferred width that this node should be resized to during layout
See Also:
  - `setPrefWidth(double)`

### prefHeight

public final double prefHeight(double width)
Called during layout to determine the preferred height for this node. Returns the value from `prefHeight(forWidth)` unless the application overrode the preferred height by setting the prefHeight property.

Parameters:
  `width` - the width
Returns:
  the preferred height that this node should be resized to during layout
See Also:
  - `setPrefHeight(double)`

### maxWidth

public final double maxWidth(double height)
Called during layout to determine the maximum width for this node. Returns the value from `maxWidth(forHeight)` unless the application overrode the maximum width by setting the maxWidth property.

Parameters:
  `height` - the height
Returns:
  the maximum width that this node should be resized to during layout
See Also:
  - `setMaxWidth(double)`

### maxHeight

public final double maxHeight(double width)
Called during layout to determine the maximum height for this node. Returns the value from `maxHeight(forWidth)` unless the application overrode the maximum height by setting the maxHeight property.

Parameters:
  `width` - the width
Returns:
  the maximum height that this node should be resized to during layout
See Also:
  - `setMaxHeight(double)`

### createDefaultSkin

protected Skin<?> createDefaultSkin()
Create a new instance of the default skin for this control. This is called to create a skin for the control if no skin is provided via CSS `-fx-skin` or set explicitly in a sub-class with `setSkin(...)`.

Returns:
  new instance of default skin for this control. If null then the control will have no skin unless one is provided by css.
Since:
  JavaFX 8.0

### getClassCssMetaData

public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()

Returns:
  The CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
Since:
  JavaFX 8.0

### getCssMetaData

public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
The CssMetaData of this Styleable. This may be returned as an unmodifiable list.

Specified by:
  `getCssMetaData` in interface `Styleable`
Returns:
  the CssMetaData
Since:
  JavaFX 8.0

### pseudoClassStateChanged

public final void pseudoClassStateChanged(PseudoClass pseudoClass, boolean active)

Parameters:
  `pseudoClass` - the pseudo class
  `active` - the active state
Since:
  JavaFX 8.0
See Also:
  - `Node.pseudoClassStateChanged(javafx.css.PseudoClass, boolean)`

### getTypeSelector

public String getTypeSelector()
The type of this `Styleable` that is to be used in selector matching. This is analogous to an "element" in HTML. (CSS Type Selector).

Specified by:
  `getTypeSelector` in interface `Styleable`
Returns:
  "PopupControl"
Since:
  JavaFX 8.0

### getStyleableParent

public Styleable getStyleableParent()
Return the parent of this Styleable, or null if there is no parent. A PopupControl's styles are based on the popup "owner" which is the `ownerNode` or, if the ownerNode is not set, the root of the `ownerWindow's` scene. If the popup has not been shown, both ownerNode and ownerWindow will be null and `null` will be returned. Note that the PopupWindow's scene root is not returned because there is no way to guarantee that the PopupWindow's scene root would properly return the ownerNode or ownerWindow.

Specified by:
  `getStyleableParent` in interface `Styleable`
Returns:
  `PopupWindow.getOwnerNode()`, `PopupWindow.getOwnerWindow()`, or null.
Since:
  JavaFX 8.0

### getPseudoClassStates

public final ObservableSet<PseudoClass> getPseudoClassStates()
Return the pseudo-class state of this Styleable. CSS assumes this set is read-only.

Specified by:
  `getPseudoClassStates` in interface `Styleable`
Returns:
  the pseudo-class state
Since:
  JavaFX 8.0

### getStyleableNode

public Node getStyleableNode()
Returns the Node that represents this Styleable object. This method should be overridden in cases where the Styleable is not itself a Node, so that it may optionally return the relevant root node representation of itself. By default this method returns null, which can mean that either the Styleable itself is a Node, or if that is not the case, that the Styleable does not have a node representation available at the time of request.

Specified by:
  `getStyleableNode` in interface `Styleable`
Returns:
  the Node that represents this Styleable object