Module javafx.graphics
Package javafx.application

## Enum ConditionalFeature

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

- All Implemented Interfaces:
    `Serializable`, `Comparable<ConditionalFeature>`, `java.lang.constant.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 inherited from 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.
    `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 type with the specified name.
    `static ConditionalFeature[]` | `values()` | Returns an array containing the constants of this enum type, in the order they are declared.

    - ### Methods inherited from class java.lang.Enum

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

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

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

- - ### Enum Constant Detail

    - #### 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.

      If a security manager is present, the application must have the `FXPermission` "createTransparentWindow" in order to create a transparent window. If the application doesn't have the required permission, it won't be able to use this feature; it will appear as if the the platform doesn't support transparent windows, and `Platform.isSupported(TRANSPARENT_WINDOW)` will return `false`.

      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

    - #### 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 Detail

    - #### values

          public static ConditionalFeature[] values()

      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static ConditionalFeature valueOf​(String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (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 type has no constant with the specified name
        `NullPointerException` - if the argument is null