Module  javafx.graphics
软件包  javafx.application

Class Preloader



  • public abstract class Preloader
    extends Application
    扩展定义JavaFX应用程序的可选预加载器的类。 应用程序可能包含预加载器,用于改进应用程序加载体验,特别是嵌入在浏览器中或在Web启动执行模式下启动的应用程序。

    预加载器是在主应用程序之前启动的一个小应用程序,用于定制启动体验。 预加载器:

    • 获取加载应用资源的进度通知
    • 获取错误通知
    • 获取应用程序初始化和启动的通知
    • 决定何时应用程序可见

    默认的预加载器显示在应用程序Stage的顶部,在预加载器可见之前,它不可见。 预加载器需要隐藏自身才能使应用程序可见。 好的做法是不要早于application.start()被调用,否则应用程序本身不可见。

    预加载器还可以与应用协作以实现高级视觉效果或共享数据(例如,实现登录屏幕)。 预加载器获得对应用程序的引用,并且如果应用程序实现预加载程序知道并依赖的接口,则可以从应用程序中提取需要进行协作的数据。 通常不建议以这样的方式设计预加载器,使得应用程序可以直接调用它们,因为如果应用程序被签名并且预加载程序没有,这将导致糟糕的用户体验。

    如果应用程序没有指定预加载器,则使用默认的预加载器。 默认预加载器外观可以自定义(参数设置为TBD)。

    自定义预加载器实现应遵循以下规则:

    1. 应该有类扩展Preloader
    2. 预加载器所需的类需要打包在单独的jar中。 我们建议这个jar是无符号的。
    3. JNLP部署描述符应该具有预加载器类属性,该类的全名为javafx-desc元素中的值,进程需要的jar需要具有“进度”类型

    应用程序还可以使用notifyPreloader方法向预加载程序发送自定义通知。 这样一个预加载器也可以显示应用程序的初始化进度。

    请注意,预加载器受到与其他JavaFX应用程序相同的规则,包括FX线程规则。 特别是,在非FX线程上调用类构造函数和init()方法,并且在FX应用程序线程上执行start()。 这也意味着应用程序构造函数/ init()将与preloader start()同时运行。

    预加载器通知的回调将在FX应用程序线程上传递。

    关机(包括stop()被调用)是TBD。

    从以下版本开始:
    JavaFX 2.0
    • 构造方法详细信息

      • Preloader

        public Preloader​()
    • 方法详细信息

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