# Enum Class ConditionalFeature

java.lang.Object
java.lang.Enum<ConditionalFeature>
javafx.application.ConditionalFeature

All Implemented Interfaces:
  `Serializable`, `Comparable<ConditionalFeature>`, `Constable`

public enum ConditionalFeature extends Enum<ConditionalFeature>
Defines a set of conditional (optional) features. These features may not be available on all platforms. An application that wants to know whether a particular feature is available may query this using the `Platform.isSupported()` function. Using a conditional feature on a platform that does not support it will not cause an exception. In general, the conditional feature will just be ignored. See the documentation for each feature for more detail.

Since:
  JavaFX 2.0

- ## Nested Class Summary

  ### Nested classes/interfaces declared in class java.lang.Enum

  `Enum.EnumDesc<E extends Enum<E>>`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `CONTROLS`
  Indicates that JavaFX classes providing UI controls are available on this platform.
  `EFFECT`
  Indicates that filter effects are available on the platform.
  `EXTENDED_WINDOW`
  Deprecated.
  This is a preview feature which may be changed or removed in a future release.
  `FXML`
  Indicates that XML libraries are present in the JRE and that the FXML API is available on the platform.
  `GRAPHICS`
  Indicates that JavaFX classes providing graphics capabilities are available on this platform.
  `INPUT_METHOD`
  Indicates that text input method is available on the platform.
  `INPUT_MULTITOUCH`
  Indicates whether or not a touch screen providing multi-touch input is attached to the device on which JavaFX in running.
  `INPUT_POINTER`
  Indicates whether or not a relative motion pointer device such as a mouse, trackpad or trackball is attached.
  `INPUT_TOUCH`
  Indicates whether or not a touch screen is attached to the device on which JavaFX in running.
  `MEDIA`
  Indicates that the javafx.scene.media package is available on this platform.
  `SCENE3D`
  Indicates that 3D is available on the platform.
  `SHAPE_CLIP`
  Indicates that clipping against an arbitrary shape is available on the platform.
  `SWING`
  Indicates that the Swing library is present in the Java Runtime Environment and that Swing integration with JavaFX is available on the platform.
  `SWT`
  Indicates that SWT integration is available on the platform.
  `TRANSPARENT_WINDOW`
  Indicates that the system supports full window transparency.
  `TWO_LEVEL_FOCUS`
  Indicates whether or not controls should use two-level focus.
  `UNIFIED_WINDOW`
  Indicates that a system supports `StageStyle.UNIFIED`
  `VIRTUAL_KEYBOARD`
  Indicates whether an on-screen virtual keyboard is used for text input.
  `WEB`
  Indicates that the javafx.scene.web packages is available on this platform.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static ConditionalFeature`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static ConditionalFeature[]`
  `values()`
  Returns an array containing the constants of this enum class, in the order they are declared.

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

  `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

  `getClass, notify, notifyAll, wait, wait, wait`

- ## Enum Constant Details

  - ### GRAPHICS

    public static final ConditionalFeature GRAPHICS
    Indicates that JavaFX classes providing graphics capabilities are available on this platform.
    Since:
      JavaFX 8.0

  - ### CONTROLS

    public static final ConditionalFeature CONTROLS
    Indicates that JavaFX classes providing UI controls are available on this platform.
    Since:
      JavaFX 8.0

  - ### MEDIA

    public static final ConditionalFeature MEDIA
    Indicates that the javafx.scene.media package is available on this platform.
    Since:
      JavaFX 8.0

  - ### WEB

    public static final ConditionalFeature WEB
    Indicates that the javafx.scene.web packages is available on this platform.
    Since:
      JavaFX 8.0

  - ### SWT

    public static final ConditionalFeature SWT
    Indicates that SWT integration is available on the platform. This tests for SWT integration with JavaFX, but does not test for the presence of the full SWT library.
    Since:
      JavaFX 8.0

  - ### SWING

    public static final ConditionalFeature SWING
    Indicates that the Swing library is present in the Java Runtime Environment and that Swing integration with JavaFX is available on the platform.
    Since:
      JavaFX 8.0

  - ### FXML

    public static final ConditionalFeature FXML
    Indicates that XML libraries are present in the JRE and that the FXML API is available on the platform. Note that it is possible for FXML APIs to be present but unusable if the underlying Java Runtime Environment does not have XML support. In this case Platform.isSupported(ConditionalFeature.FXML) wll return false.
    Since:
      JavaFX 8.0

  - ### SCENE3D

    public static final ConditionalFeature SCENE3D
    Indicates that 3D is available on the platform. If an application attempts to use 3D transforms or a 3D camera on a platform that does not support 3D, then the transform or camera is ignored; it effectively becomes the identity transform.

  - ### EFFECT

    public static final ConditionalFeature EFFECT
    Indicates that filter effects are available on the platform. If an application uses an effect on a platform that does not support it, the effect will be ignored.

  - ### SHAPE_CLIP

    public static final ConditionalFeature SHAPE_CLIP
    Indicates that clipping against an arbitrary shape is available on the platform. If an application specifies a clip node on a platform that does not support clipping against an arbitrary shape, the node will be clipped to the bounds of the specified clip node rather than its geometric shape.

  - ### INPUT_METHOD

    public static final ConditionalFeature INPUT_METHOD
    Indicates that text input method is available on the platform. If an application specifies an input method on a platform that does not support it, the input method will be ignored.

  - ### TRANSPARENT_WINDOW

    public static final ConditionalFeature TRANSPARENT_WINDOW
    Indicates that the system supports full window transparency. Transparent windows will have only limited or no functionality on a platform that doesn't support it.

    Currently, this support is available on all desktop platforms except Linux systems without the XComposite extension. The XShape extension is used in that case, so the window edges are aliased.

    Since:
      JavaFX 2.2

  - ### UNIFIED_WINDOW

    public static final ConditionalFeature UNIFIED_WINDOW
    Indicates that a system supports `StageStyle.UNIFIED`

    NOTE: Currently, supported on:

    - Windows Vista+: a window is completely filled with the frozen glass effect
    - Mac OS X: a window has the brushed-metal textured background
    Since:
      JavaFX 8.0

  - ### EXTENDED_WINDOW

    @Deprecated(since="25") public static final ConditionalFeature EXTENDED_WINDOW
    Deprecated.
    This is a preview feature which may be changed or removed in a future release.
    Indicates that a system supports `StageStyle.EXTENDED`.

    This feature is currently supported on Windows, Linux, and macOS.

    Since:
      25

  - ### TWO_LEVEL_FOCUS

    public static final ConditionalFeature TWO_LEVEL_FOCUS
    Indicates whether or not controls should use two-level focus. Two-level focus is when separate operations are needed in some controls to first enter a control and then to perform operations on the control. Two-level focus is needed on devices that provide directional arrow keys and a select key but do not provide keys for navigating between one control and another. On these devices a focused control may be either internally focused - in which case arrow keys operate on the control - or externally focused, in which case arrow keys are used to navigate focus to other controls.

    On embedded platforms JavaFX makes an attempt to initialize this ConditionalFeature based on what input peripherals are attached. On desktop platforms this ConditionalFeature will typically default to false.

    Since:
      JavaFX 8.0

  - ### VIRTUAL_KEYBOARD

    public static final ConditionalFeature VIRTUAL_KEYBOARD
    Indicates whether an on-screen virtual keyboard is used for text input.

    On embedded platforms JavaFX makes an attempt to initialize this ConditionalFeature based on what input peripherals are attached. On desktop platforms this ConditionalFeature will typically default to false.

    Since:
      JavaFX 8.0

  - ### INPUT_TOUCH

    public static final ConditionalFeature INPUT_TOUCH
    Indicates whether or not a touch screen is attached to the device on which JavaFX in running.

    On embedded platforms JavaFX makes an attempt to initialize this ConditionalFeature based on what input peripherals are attached. On desktop platforms this ConditionalFeature will typically default to false.

    Since:
      JavaFX 8.0

  - ### INPUT_MULTITOUCH

    public static final ConditionalFeature INPUT_MULTITOUCH
    Indicates whether or not a touch screen providing multi-touch input is attached to the device on which JavaFX in running.

    On embedded platforms JavaFX makes an attempt to initialize this ConditionalFeature based on what input peripherals are attached. On desktop platforms this ConditionalFeature will typically default to false.

    If INPUT_MULTITOUCH is available then INPUT_TOUCH is also available.

    Since:
      JavaFX 8.0

  - ### INPUT_POINTER

    public static final ConditionalFeature INPUT_POINTER
    Indicates whether or not a relative motion pointer device such as a mouse, trackpad or trackball is attached.

    On embedded platforms JavaFX makes an attempt to initialize this ConditionalFeature based on what input peripherals are attached. On desktop platforms this ConditionalFeature will typically default to true.

    Since:
      JavaFX 8.0

- ## Method Details

  - ### values

    public static ConditionalFeature[] values()
    Returns an array containing the constants of this enum class, in the order they are declared.
    Returns:
      an array containing the constants of this enum class, in the order they are declared

  - ### valueOf

    public static ConditionalFeature valueOf(String name)
    Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
    Parameters:
      `name` - the name of the enum constant to be returned.
    Returns:
      the enum constant with the specified name
    Throws:
      `IllegalArgumentException` - if this enum class has no constant with the specified name
      `NullPointerException` - if the argument is null