# 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()`