Class Platform
public final class Platform
extends Object - Since:
- JavaFX 2.0
Property Summary
| Type | Property | Description |
|---|---|---|
static ReadOnlyBooleanProperty | accessibilityActive | Indicates whether or not accessibility is active. |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
static ReadOnlyBooleanProperty | accessibilityActiveProperty() | Indicates whether or not accessibility is active. |
static Object | enterNestedEventLoop(Object key) | Enter a nested event loop and block until the corresponding exitNestedEventLoop call is made. |
static void | exit() | Causes the JavaFX application to terminate. |
static void | exitNestedEventLoop(Object key,
Object rval) | Exit a nested event loop and unblock the caller of the corresponding enterNestedEventLoop. |
static boolean | isAccessibilityActive() | Gets the value of the property accessibilityActive. |
static boolean | isFxApplicationThread() | Returns true if the calling thread is the JavaFX Application Thread. |
static boolean | isImplicitExit() | Gets the value of the implicitExit attribute. |
static Optional<Boolean> | isKeyLocked(KeyCode keyCode) | Returns a flag indicating whether the key corresponding to keyCode is in the locked (or "on") state. |
static boolean | isNestedLoopRunning() | Checks whether a nested event loop is running, returning true to indicate that one is, and false if there are no nested event loops currently running. |
static boolean | isSupported(ConditionalFeature feature) | Queries whether a specific conditional feature is supported by the platform. |
static void | requestNextPulse() | Requests the Java Runtime to perform a pulse. |
static void | runLater(Runnable runnable) | Run the specified Runnable on the JavaFX Application Thread at some unspecified time in the future. |
static void | setImplicitExit(boolean implicitExit) | Sets the implicitExit attribute to the specified value. |
static void | startup(Runnable runnable) | This method starts the JavaFX runtime. |
Property Details
accessibilityActive
public static ReadOnlyBooleanProperty accessibilityActiveProperty
This method may be called from any thread.
- Since:
- JavaFX 8u40
- See Also:
isAccessibilityActive()
Method Details
startup
public static void startup(Runnable runnable)
This method may or may not return to the caller before the run method of the specified Runnable has been called. In any case, this method is not blocked on the specified Runnable being executed. Once this method returns, you may call runLater(Runnable) with additional Runnables. Those Runnables will be called, also on the JavaFX Application Thread, after the Runnable passed into this method has been called.
As noted, it is normally the case that the JavaFX Application Thread is started automatically. It is important that this method only be called when the JavaFX runtime has not yet been initialized. Situations where the JavaFX runtime is started automatically include:
- For standard JavaFX applications that extend
Application, and use either the Java launcher or one of the launch methods in the Application class to launch the application, the FX runtime is initialized automatically by the launcher before theApplicationclass is loaded. - For Swing applications that use
JFXPanelto display FX content, the FX runtime is initialized when the firstJFXPanelinstance is constructed. - For SWT application that use
FXCanvasto display FX content, the FX runtime is initialized when the firstFXCanvasinstance is constructed.
When an application does not follow any of these common approaches, then it becomes the responsibility of the developer to manually start the JavaFX runtime by calling this startup method.
Calling this method when the JavaFX runtime is already running will result in an IllegalStateException being thrown - it is only valid to request that the JavaFX runtime be started once.
Note: The JavaFX classes must be loaded from a set of named javafx.* modules on the module path. Loading the JavaFX classes from the classpath is not supported. A warning is logged when the JavaFX runtime is started if the JavaFX classes are not loaded from the expected named module. This warning is logged regardless of whether the JavaFX runtime was started by calling this method or automatically as described above.
- Parameters:
-
runnable- the Runnable whose run method will be executed on the JavaFX Application Thread once it has been started - Throws:
-
IllegalStateException- if the JavaFX runtime is already running - Since:
- 9
- See Also:
Application
runLater
public static void runLater(Runnable runnable)
NOTE: applications should avoid flooding JavaFX with too many pending Runnables. Otherwise, the application may become unresponsive. Applications are encouraged to batch up multiple operations into fewer runLater calls. Additionally, long-running operations should be done on a background thread where possible, freeing up the JavaFX Application Thread for GUI operations.
This method must not be called before the FX runtime has been initialized. For standard JavaFX applications that extend Application, and use either the Java launcher or one of the launch methods in the Application class to launch the application, the FX runtime is initialized by the launcher before the Application class is loaded. For Swing applications that use JFXPanel to display FX content, the FX runtime is initialized when the first JFXPanel instance is constructed. For SWT application that use FXCanvas to display FX content, the FX runtime is initialized when the first FXCanvas instance is constructed. For applications that do not follow any of these approaches, then it is necessary to manually start the JavaFX runtime by calling startup(Runnable) once.
- Parameters:
-
runnable- the Runnable whose run method will be executed on the JavaFX Application Thread - Throws:
-
IllegalStateException- if the FX runtime has not been initialized - See Also:
Application
requestNextPulse
public static void requestNextPulse()
- Since:
- 9
isFxApplicationThread
public static boolean isFxApplicationThread()
- Returns:
- true if running on the JavaFX Application Thread
exit
public static void exit()
This method may be called from any thread.
setImplicitExit
public static void setImplicitExit(boolean implicitExit)
Application.stop() method and terminate the JavaFX application thread. If this attribute is false, the application will continue to run normally even after the last window is closed, until the application calls exit(). The default value is true. This method may be called from any thread.
- Parameters:
-
implicitExit- a flag indicating whether or not to implicitly exit when the last window is closed. - Since:
- JavaFX 2.2
isImplicitExit
public static boolean isImplicitExit()
This method may be called from any thread.
- Returns:
- the implicitExit attribute
- Since:
- JavaFX 2.2
isSupported
public static boolean isSupported(ConditionalFeature feature)
For example:
// Query whether filter effects are supported
if (Platform.isSupported(ConditionalFeature.EFFECT)) {
// use effects
}
- Parameters:
-
feature- the conditional feature in question. - Returns:
- true if a specific conditional feature is supported by the platform, otherwise false
enterNestedEventLoop
public static Object enterNestedEventLoop(Object key)
rval object supplied to the exitNestedEventLoop method call that unblocks it. This method must either be called from an input event handler or from the run method of a Runnable passed to Platform.runLater. It must not be called during animation or layout processing.
- Parameters:
-
key- the Object that identifies the nested event loop, which must not be null - Returns:
- the value passed into the corresponding call to exitEventLoop
- Throws:
-
IllegalArgumentException- if the specified key is associated with a nested event loop that has not yet returned -
NullPointerException- if the key is null -
IllegalStateException- if this method is called during animation or layout processing. -
IllegalStateException- if this method is called on a thread other than the JavaFX Application Thread. - Since:
- 9
exitNestedEventLoop
public static void exitNestedEventLoop(Object key, Object rval)
- Parameters:
-
key- the Object that identifies the nested event loop, which must not be null -
rval- an Object that is returned to the caller of the corresponding enterNestedEventLoop. This may be null. - Throws:
-
IllegalArgumentException- if the specified key is not associated with an active nested event loop -
NullPointerException- if the key is null -
IllegalStateException- if this method is called on a thread other than the FX Application thread - Since:
- 9
isKeyLocked
public static Optional<Boolean> isKeyLocked(KeyCode keyCode)
keyCode is in the locked (or "on") state. keyCode must be one of: KeyCode.CAPS or KeyCode.NUM_LOCK. If the underlying system is not able to determine the state of the specified keyCode, an empty Optional is returned. If the keyboard attached to the system doesn't have the specified key, an Optional containing false is returned. This method must be called on the JavaFX Application thread.- Parameters:
-
keyCode- theKeyCodeof the lock state to query - Returns:
- the lock state of the key corresponding to
keyCode, or an emptyOptionalif the system cannot determine its state - Throws:
-
IllegalArgumentException- ifkeyCodeis not one of the validKeyCodevalues -
IllegalStateException- if this method is called on a thread other than the JavaFX Application Thread - Since:
- 17
isNestedLoopRunning
public static boolean isNestedLoopRunning()
- Returns:
- true if there is a nested event loop running, and false otherwise.
- Throws:
-
IllegalStateException- if this method is called on a thread other than the JavaFX Application Thread. - Since:
- 9
isAccessibilityActive
public static boolean isAccessibilityActive()
- Property description:
- Indicates whether or not accessibility is active. This property is typically set to true the first time an assistive technology, such as a screen reader, requests information about any JavaFX window or its children.
This method may be called from any thread.
- Since:
- JavaFX 8u40
accessibilityActiveProperty
public static ReadOnlyBooleanProperty accessibilityActiveProperty()
This method may be called from any thread.
- Since:
- JavaFX 8u40
- See Also:
isAccessibilityActive()
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.