- java.lang.Object
-
- javafx.application.Platform
-
public final class Platform extends Object
应用平台支持类。- 从以下版本开始:
- JavaFX 2.0
-
-
Property Summary
Properties Type Property 描述 static ReadOnlyBooleanProperty
accessibilityActive
指示辅助功能是否处于活动状态。
-
方法摘要
所有方法 静态方法 具体的方法 Modifier and Type 方法 描述 static ReadOnlyBooleanProperty
accessibilityActiveProperty()
指示辅助功能是否处于活动状态。static Object
enterNestedEventLoop(Object key)
输入嵌套事件循环并阻塞,直到相应的exitNestedEventLoop调用被创建为止。static void
exit()
导致JavaFX应用程序终止。static void
exitNestedEventLoop(Object key, Object rval)
退出一个嵌套事件循环并解除对应的enterNestedEventLoop的调用者的阻塞。static boolean
isAccessibilityActive()
获取属性accessibilityActive的值。static boolean
isFxApplicationThread()
如果调用线程是JavaFX应用程序线程,则返回true。static boolean
isImplicitExit()
获取implicitExit属性的值。static boolean
isNestedLoopRunning()
检查嵌套事件循环是否正在运行,如果没有嵌套事件循环当前正在运行,则返回true以指示一个为true;如果为false。static boolean
isSupported(ConditionalFeature feature)
查询平台是否支持特定条件功能。static void
requestNextPulse()
请求Java运行时执行脉冲。static void
runLater(Runnable runnable)
在将来某些未指定的时间运行JavaFX应用程序线程上指定的Runnable。static void
setImplicitExit(boolean implicitExit)
将implicitExit属性设置为指定的值。static void
startup(Runnable runnable)
此方法启动JavaFX运行时。
-
-
-
Property Detail
-
accessibilityActive
public static ReadOnlyBooleanProperty accessibilityActiveProperty
指示辅助功能是否处于活动状态。 该属性通常在第一次辅助技术(如屏幕阅读器)请求关于任何JavaFX窗口或其子项的信息时设置为true。可以从任何线程调用此方法。
- 从以下版本开始:
- JavaFX 8u40
- 另请参见:
-
isAccessibilityActive()
-
-
方法详细信息
-
startup
public static void startup(Runnable runnable)
此方法启动JavaFX运行时。 然后在JavaFX应用程序线程上调用指定的Runnable。 一般来说,没有必要显式调用此方法,因为它是由于大多数JavaFX应用程序的构建而被调用的。 但是有直接调用此方法的有效用例。 因为这种方法启动JavaFX运行时,所以还没有任何JavaFX应用程序线程,所以这个方法直接在应用程序的主线程上被调用是很正常的。在调用指定的Runnable的run方法之前,此方法可能也可能不会返回给调用者。 无论如何,一旦该方法返回,您可以使用附加的Runnables来调用
runLater(Runnable)
。 那些Runnables将被调用,也在JavaFX应用程序线程上,Runnable传入这个方法后被调用。如上所述,通常情况下JavaFX应用程序线程将自动启动。 只有当JavaFX运行时尚未初始化时,才能调用此方法。 自动启动JavaFX运行时的情况包括:
- 对于扩展
Application
的标准JavaFX应用程序,并且使用Java启动器或Application类中的启动方法之一启动应用程序,FX运行时将在加载Application
类之前由启动器自动初始化。 - 对于使用
JFXPanel
显示FX内容的Swing应用程序,当构建第一个JFXPanel
实例时,FX运行时将被初始化。 - 对于使用
FXCanvas
显示FX内容的SWT应用程序,当构建第一个FXCanvas
实例时,FX运行时将被初始化。
当应用程序不遵循这些常见方法时,开发人员有责任通过调用此启动方法手动启动JavaFX运行时。
当JavaFX运行时已经在运行时调用此方法将导致抛出一个
IllegalStateException
- 仅仅要求JavaFX运行时启动一次才有效。- 参数
-
runnable
- 运行方法将在JavaFX应用程序主题一旦被启动后执行的Runnable - 异常
-
IllegalStateException
- 如果JavaFX运行时已经在运行 - 从以下版本开始:
- 9
- 另请参见:
-
Application
- 对于扩展
-
runLater
public static void runLater(Runnable runnable)
在将来某些未指定的时间运行JavaFX应用程序线程上指定的Runnable。 可以从任何线程调用此方法,将Runnable发布到事件队列,然后立即返回给调用者。 Runnables按照它们发布的顺序执行。 传递给runLater方法的runnable将在任何Runnable传递给随后的runLater调用之前执行。 如果在JavaFX运行时关闭后调用此方法,则调用将被忽略:Runnable将不会被执行,也不会抛出任何异常。注意:应用程序应避免泛滥JavaFX与太多待处理的Runnables。 否则,应用程序可能无响应。 鼓励应用程序将多个操作批量更少的runLater调用。 另外,长时间运行的操作应该在可能的后台线程上完成,释放JavaFX应用程序线程进行GUI操作。
在FX运行时初始化之前,不能调用此方法。 对于扩展
Application
的标准JavaFX应用程序,并使用Java启动器或Application类中的启动方法之一启动应用程序,FX运行时将在启动应用程序类之前由启动程序初始化。 对于使用JFXPanel显示FX内容的Swing应用程序,在构建第一个JFXPanel实例时,会初始化FX运行时。 对于使用FXCanvas显示FX内容的SWT应用程序,当构建第一个FXCanvas实例时,FX运行时将被初始化。 对于不遵循这些方法的应用程序,则需要通过调用startup(Runnable)
一次手动启动JavaFX运行时。- 参数
-
runnable
- 运行方法将在JavaFX应用程序线程上执行的Runnable - 异常
-
IllegalStateException
- 如果FX运行时尚未初始化 - 另请参见:
-
Application
-
requestNextPulse
public static void requestNextPulse()
请求Java运行时执行脉冲。 即使没有动画定时器,场景图修改或否则会导致脉冲运行的窗口事件,这将运行一个脉冲。 如果没有脉冲正在进行,则下一次脉冲定时器触发时,将调度一个脉冲。 如果已经有脉冲运行,那么在当前脉冲之后至少再有一个脉冲将被调度。 可以在任何线程上调用此方法。- 从以下版本开始:
- 9
-
isFxApplicationThread
public static boolean isFxApplicationThread()
如果调用线程是JavaFX应用程序线程,则返回true。 使用此调用确保在JavaFX应用程序线程上执行(或未执行)给定的任务。- 结果
- 如果在JavaFX应用程序主题上运行,则为true
-
exit
public static void exit()
导致JavaFX应用程序终止。 如果在调用Application start方法后调用此方法,则JavaFX启动程序将调用Application stop方法并终止JavaFX应用程序线程。 然后启动线程将关闭。 如果没有其他非守护进程线程正在运行,Java VM将退出。 如果从Preloader或Application init方法调用此方法,则可能无法调用Application stop方法。可以从任何线程调用此方法。
注意:如果应用程序嵌入在浏览器中,则此方法可能不起作用。
-
setImplicitExit
public static void setImplicitExit(boolean implicitExit)
将implicitExit属性设置为指定的值。 如果此属性为true,则JavaFX运行时将在最后一个窗口关闭时隐式关闭; JavaFX启动器将调用Application.stop()
方法并终止JavaFX应用程序线程。 如果此属性为false,即使在最后一个窗口关闭后,应用程序仍将继续运行,直到应用程序调用exit()
。 默认值为true。可以从任何线程调用此方法。
- 参数
-
implicitExit
- 指示当最后一个窗口关闭时是否隐式退出的标志。 - 从以下版本开始:
- JavaFX 2.2
-
isImplicitExit
public static boolean isImplicitExit()
获取implicitExit属性的值。可以从任何线程调用此方法。
- 结果
- implicitExit属性
- 从以下版本开始:
- JavaFX 2.2
-
isSupported
public static boolean isSupported(ConditionalFeature feature)
查询平台是否支持特定条件功能。例如:
// Query whether filter effects are supported if (Platform.isSupported(ConditionalFeature.EFFECT)) { // use effects }
- 参数
-
feature
- 有问题的条件特征。 - 结果
- 如果平台支持特定条件功能,则为true,否则为false
-
enterNestedEventLoop
public static Object enterNestedEventLoop(Object key)
输入嵌套事件循环并阻塞,直到相应的exitNestedEventLoop调用被创建为止。 传入此方法的密钥用于唯一标识匹配的输入/退出对。 此方法创建一个新的嵌套事件循环并阻塞,直到使用相同的键调用相应的exitNestedEventLoop方法。 此方法的返回值将是提供给exitNestedEventLoop方法调用的rval
对象,该方法调用将解除阻塞。必须从输入事件处理程序或从Runnable的run方法传递给
Platform.runLater
调用此方法。 在动画或布局处理过程中不得调用它。- 参数
-
key
- 标识嵌套事件循环的对象,不能为null - 结果
- 该值传递给对应的调用exitEventLoop
- 异常
-
IllegalArgumentException
- 如果指定的键与尚未返回的嵌套事件循环相关联 -
NullPointerException
- 如果密钥为空 -
IllegalStateException
- 如果在动画或布局处理期间调用此方法。 -
IllegalStateException
- 如果在除JavaFX应用程序线程之外的线程上调用此方法。 - 从以下版本开始:
- 9
-
exitNestedEventLoop
public static void exitNestedEventLoop(Object key, Object rval)
退出一个嵌套事件循环并解除对应的enterNestedEventLoop的调用者的阻塞。 传入此方法的密钥用于唯一标识匹配的输入/退出对。 此方法导致先前使用键创建的嵌套事件循环退出并将控制权返回给调用者。 如果指定的嵌套事件循环不是最里面的循环,那么它将不会返回,直到所有其他内部循环也退出。- 参数
-
key
- 标识嵌套事件循环的对象,不能为null -
rval
- 返回给相应enterNestedEventLoop的调用者的对象。 这可能是空的。 - 异常
-
IllegalArgumentException
- 如果指定的键不与活动的嵌套事件循环相关联 -
NullPointerException
- 如果密钥为空 -
IllegalStateException
- 如果在除FX应用程序线程之外的线程上调用此方法 - 从以下版本开始:
- 9
-
isNestedLoopRunning
public static boolean isNestedLoopRunning()
检查嵌套事件循环是否正在运行,如果没有嵌套事件循环当前正在运行,则返回true以指示一个为true;如果为false。 必须在JavaFX应用程序线程上调用此方法。- 结果
- 如果有嵌套事件循环运行,则为true,否则为false。
- 异常
-
IllegalStateException
- 如果在除JavaFX应用程序线程之外的线程上调用此方法。 - 从以下版本开始:
- 9
-
isAccessibilityActive
public static boolean isAccessibilityActive()
获取属性accessibilityActive的值。- Property description:
-
指示辅助功能是否处于活动状态。
该属性通常在第一次辅助技术(如屏幕阅读器)请求关于任何JavaFX窗口或其子项的信息时设置为true。
可以从任何线程调用此方法。
- 从以下版本开始:
- JavaFX 8u40
-
accessibilityActiveProperty
public static ReadOnlyBooleanProperty accessibilityActiveProperty()
指示辅助功能是否处于活动状态。 该属性通常在第一次辅助技术(如屏幕阅读器)请求关于任何JavaFX窗口或其子项的信息时设置为true。可以从任何线程调用此方法。
- 从以下版本开始:
- JavaFX 8u40
- 另请参见:
-
isAccessibilityActive()
-
-