# Interface Skinnable

All Known Implementing Classes:
  `Accordion`, `Button`, `ButtonBar`, `ButtonBase`, `Cell`, `CheckBox`, `CheckBoxListCell`, `CheckBoxTableCell`, `CheckBoxTreeCell`, `CheckBoxTreeTableCell`, `ChoiceBox`, `ChoiceBoxListCell`, `ChoiceBoxTableCell`, `ChoiceBoxTreeCell`, `ChoiceBoxTreeTableCell`, `CodeArea`, `ColorPicker`, `ComboBox`, `ComboBoxBase`, `ComboBoxListCell`, `ComboBoxTableCell`, `ComboBoxTreeCell`, `ComboBoxTreeTableCell`, `ContextMenu`, `Control`, `DateCell`, `DatePicker`, `HTMLEditor`, `Hyperlink`, `IndexedCell`, `Label`, `Labeled`, `ListCell`, `ListView`, `MenuBar`, `MenuButton`, `Pagination`, `PasswordField`, `PopupControl`, `ProgressBar`, `ProgressBarTableCell`, `ProgressBarTreeTableCell`, `ProgressIndicator`, `RadioButton`, `RichTextArea`, `ScrollBar`, `ScrollPane`, `Separator`, `Slider`, `Spinner`, `SplitMenuButton`, `SplitPane`, `TableCell`, `TableRow`, `TableView`, `TabPane`, `TextArea`, `TextField`, `TextFieldListCell`, `TextFieldTableCell`, `TextFieldTreeCell`, `TextFieldTreeTableCell`, `TextInputControl`, `TitledPane`, `ToggleButton`, `ToolBar`, `Tooltip`, `TreeCell`, `TreeTableCell`, `TreeTableRow`, `TreeTableView`, `TreeView`

public interface Skinnable

The Skinnable interface is implemented by the `Control` class, and therefore is implemented by all Control implementations.

Since:
  JavaFX 2.0

- ## Property Summary

  Properties
  Type
  Property
  Description
  `ObjectProperty<Skin<?>>`
  `skin`
  The `Skin` responsible for rendering this `Skinnable`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Skin<?>`
  `getSkin()`
  Gets the value of the `skin` property.
  `void`
  `setSkin(Skin<?> value)`
  Sets the value of the `skin` property.
  `ObjectProperty<Skin<?>>`
  `skinProperty()`
  The `Skin` responsible for rendering this `Skinnable`.

- ## Property Details

  - ### skin

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

    Some implementations of `Skinnable` define a one-to-one relationship between `Skinnable` and its `Skin`. Every `Skin` maintains a back reference to the `Skinnable`. When required, this relationship is enforced when the `Skin` is set, throwing an `IllegalArgumentException` if the return value of `Skin.getSkinnable()` is not the same as this `Skinnable`.

    A skin may be null.

    See Also:
      - `getSkin()`
      - `setSkin(Skin)`
      - `skinProperty()`

- ## Method Details

  - ### skinProperty

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

    Some implementations of `Skinnable` define a one-to-one relationship between `Skinnable` and its `Skin`. Every `Skin` maintains a back reference to the `Skinnable`. When required, this relationship is enforced when the `Skin` is set, throwing an `IllegalArgumentException` if the return value of `Skin.getSkinnable()` is not the same as this `Skinnable`.

    A skin may be null.

    Returns:
      the skin property for this Skinnable
    See Also:
      - `getSkin()`
      - `setSkin(Skin)`

  - ### setSkin

    void setSkin(Skin<?> value)
    Sets the value of the `skin` property.
    Property description:
      The `Skin` responsible for rendering this `Skinnable`. From the perspective of the `Skinnable`, the `Skin` is a black box. It listens and responds to changes in state of its `Skinnable`.

      Some implementations of `Skinnable` define a one-to-one relationship between `Skinnable` and its `Skin`. Every `Skin` maintains a back reference to the `Skinnable`. When required, this relationship is enforced when the `Skin` is set, throwing an `IllegalArgumentException` if the return value of `Skin.getSkinnable()` is not the same as this `Skinnable`.

      A skin may be null.

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

  - ### getSkin

    Skin<?> getSkin()
    Gets the value of the `skin` property.
    Property description:
      The `Skin` responsible for rendering this `Skinnable`. From the perspective of the `Skinnable`, the `Skin` is a black box. It listens and responds to changes in state of its `Skinnable`.

      Some implementations of `Skinnable` define a one-to-one relationship between `Skinnable` and its `Skin`. Every `Skin` maintains a back reference to the `Skinnable`. When required, this relationship is enforced when the `Skin` is set, throwing an `IllegalArgumentException` if the return value of `Skin.getSkinnable()` is not the same as this `Skinnable`.

      A skin may be null.

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