- java.lang.Object
-
- javafx.application.Application
-
- javafx.application.Preloader
-
public abstract class Preloader extends Application
扩展定义JavaFX应用程序的可选预加载器的类。 应用程序可能包含预加载器,用于改进应用程序加载体验,特别是嵌入在浏览器中或在Web启动执行模式下启动的应用程序。预加载器是在主应用程序之前启动的一个小应用程序,用于定制启动体验。 预加载器:
- 获取加载应用资源的进度通知
- 获取错误通知
- 获取应用程序初始化和启动的通知
- 决定何时应用程序可见
默认的预加载器显示在应用程序Stage的顶部,在预加载器可见之前,它不可见。 预加载器需要隐藏自身才能使应用程序可见。 好的做法是不要早于application.start()被调用,否则应用程序本身不可见。
预加载器还可以与应用协作以实现高级视觉效果或共享数据(例如,实现登录屏幕)。 预加载器获得对应用程序的引用,并且如果应用程序实现预加载程序知道并依赖的接口,则可以从应用程序中提取需要进行协作的数据。 通常不建议以这样的方式设计预加载器,使得应用程序可以直接调用它们,因为如果应用程序被签名并且预加载程序没有,这将导致糟糕的用户体验。
如果应用程序没有指定预加载器,则使用默认的预加载器。 默认预加载器外观可以自定义(参数设置为TBD)。
自定义预加载器实现应遵循以下规则:
- 应该有类扩展Preloader
- 预加载器所需的类需要打包在单独的jar中。 我们建议这个jar是无符号的。
- JNLP部署描述符应该具有预加载器类属性,该类的全名为javafx-desc元素中的值,进程需要的jar需要具有“进度”类型
应用程序还可以使用
notifyPreloader
方法向预加载程序发送自定义通知。 这样一个预加载器也可以显示应用程序的初始化进度。请注意,预加载器受到与其他JavaFX应用程序相同的规则,包括FX线程规则。 特别是,在非FX线程上调用类构造函数和init()方法,并且在FX应用程序线程上执行start()。 这也意味着应用程序构造函数/ init()将与preloader start()同时运行。
预加载器通知的回调将在FX应用程序线程上传递。
关机(包括stop()被调用)是TBD。
- 从以下版本开始:
- JavaFX 2.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
Preloader.ErrorNotification
报告错误的预加载程序通知。static interface
Preloader.PreloaderNotification
所有Preloader通知的标记界面。static class
Preloader.ProgressNotification
报告进度的预加载程序通知。static class
Preloader.StateChangeNotification
发出申明状态更改的通知。-
Nested classes/interfaces inherited from class javafx.application.Application
Application.Parameters
-
-
Field Summary
-
Fields inherited from class javafx.application.Application
STYLESHEET_CASPIAN, STYLESHEET_MODENA
-
-
构造方法摘要
构造方法 Constructor 描述 Preloader()
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
handleApplicationNotification(Preloader.PreloaderNotification info)
表示应用程序生成的通知。boolean
handleErrorNotification(Preloader.ErrorNotification info)
发生错误时调用。void
handleProgressNotification(Preloader.ProgressNotification info)
表示下载进度。void
handleStateChangeNotification(Preloader.StateChangeNotification info)
表示应用程序状态发生变化。-
Methods inherited from class javafx.application.Application
getHostServices, getParameters, getUserAgentStylesheet, init, launch, launch, notifyPreloader, setUserAgentStylesheet, start, stop
-
-
-
-
方法详细信息
-
handleProgressNotification
public void handleProgressNotification(Preloader.ProgressNotification info)
表示下载进度。 该方法由FX运行时调用,以在加载应用程序资源时指示进度。 不会调用发送到notifyPreloader
的ProgressNotification。Preloader类提供的这种方法的实现什么都不做。
- 参数
-
info
- 进度通知
-
handleStateChangeNotification
public void handleStateChangeNotification(Preloader.StateChangeNotification info)
表示应用程序状态发生变化。 该方法作为应用程序生命周期的一部分由FX运行时调用。Preloader类提供的这种方法的实现什么都不做。
- 参数
-
info
- 状态变更通知
-
handleApplicationNotification
public void handleApplicationNotification(Preloader.PreloaderNotification info)
表示应用程序生成的通知。 FX运行时调用此方法传递通过notifyPreloader
发送的通知。应用程序不应该直接调用此方法,而应该使用
notifyPreloader
来避免混合代码对话框的问题。Preloader类提供的这种方法的实现什么都不做。
- 参数
-
info
- 应用程序生成的通知
-
handleErrorNotification
public boolean handleErrorNotification(Preloader.ErrorNotification info)
发生错误时调用。Preloader类提供的此方法的实现返回false,表示默认错误处理程序应向用户显示消息。
- 参数
-
info
- 描述此错误原因的错误通知 - 结果
- true if error was shown to the user by preloader and no additional visualization is needed; otherwise, false.
-
-