当前位置: 首页 > 面试题库 >

Java 9 JavaFX预加载器

索和璧
2023-03-14
问题内容

在Java 8中,我可以使用以下方法使用预加载器启动JavaFX应用程序:

LauncherImpl.launchApplication(WindowMain.class, WindowMainPreloader.class, 
new String[]{...});

我更喜欢从上面的代码开始,而不是使用部署配置,因为我不希望图形界面在每次启动应用程序时都启动,而只是在一些计算出应用程序应该在其中运行的代码之后才启动GUI模式。

我使用的是“ com.sun.javafx.application.LauncherImpl”类,但显然在Java 9中,所有以“
com.sun”开头的类均已删除。那么,如何在Java 9中使用预加载器启动应用程序


问题答案:

关于这个问题的答案有一条评论:

如何在JavaFX独立应用程序中将启动画面创建为Preloader?

系统属性javafx.preloader=classname似乎也起作用。

我没有尝试过,但是也许您可以尝试设置该属性,然后通过公共Application.launch(appClass, args)API 启动您的主应用程序,也许预加载器将首先启动。

查看的代码Application.launch,看来这是可行的。这是从Java 8源复制的最终调用的代码:

public static void launchApplication(final Class<? extends Application> appClass,
        final String[] args) {

    Class<? extends Preloader> preloaderClass = savedPreloaderClass;

    if (preloaderClass == null) {
        String preloaderByProperty = AccessController.doPrivileged((PrivilegedAction<String>) () ->
                System.getProperty("javafx.preloader"));
        if (preloaderByProperty != null) {
            try {
                preloaderClass = (Class<? extends Preloader>) Class.forName(preloaderByProperty,
                        false, appClass.getClassLoader());
            } catch (Exception e) {
                System.err.printf("Could not load preloader class '" + preloaderByProperty +
                        "', continuing without preloader.");
                e.printStackTrace();
            }
        }
    }

    launchApplication(appClass, preloaderClass, args);
}

因此,您应该能够使用以下命令通过预加载器启动应用程序:

System.setProperty("javafx.preloader", "my fully qualified preloader class name");
Application.launch(myMainClass, args);


 类似资料:
  • 所谓的预加载技术就是在用户尚未触发页面跳转时,提前创建目标页面,这样当用户跳转时,就可以立即进行页面切换,节省创建新页面的时间,提升app使用体验。mui提供两种方式实现页面预加载。 方式一:通过mui.init方法中的preloadPages参数进行配置. mui.init({ preloadPages:[ { url:prelaod-page-url,

  • 描述 (Description) Framework7中的预加载器由可缩放矢量图形(SVG)制成,并使用CSS动画,这使其易于调整大小。 预加载器有两种颜色 - 默认为浅色背景 另一个是黑暗的背景 您可以在HTML中使用preloader类,如下所示 - 例子 (Example) 以下示例演示了Framework7中预加载器的使用 - <!DOCTYPE html> <html> <head

  • 通过 runApp 方法运行的 Web 应用,可通过 rax-pwa 提供的 preload 和 prerender 方法优化用户体验。 $npm i rax-pwa --save 预加载 预加载资源可以帮助页面更快速的渲染。 可通过 preload 来进行预加载。仅对 Web App 有效。 import { createElement } from 'rax'; import { preloa

  • 如果你有内容需要长时间加载,你应该给用户一个加载返回,因此,我们提供数字进度与没有数字进度的进度条。 线性 这里有一组不同类型的线性进度条。 确定进度 <div class="progress"> <div class="determinate" style="width: 70%"></div> </div> 不确定进度 <div class="progress"> <div class="in

  • ⚠️ 只有生产环境才有此功能 ⚠️ Examples Prefetching Next.js 有允许你预加载页面的 API。 用 Next.js 服务端渲染你的页面,可以达到所有你应用里所有未来会跳转的路径即时响应,有效的应用 Next.js,可以通过预加载应用程序的功能,最大程度的初始化网站性能。查看更多. Next.js 的预加载功能只预加载 JS 代码。当页面渲染时,你可能需要等待数据请求。

  • 本文向大家介绍浅析js预加载/延迟加载,包括了浅析js预加载/延迟加载的使用技巧和注意事项,需要的朋友参考一下 Pre loader 预加载一般有两种常用方式:xhr和动态插入节点的方式。动态插入节点是最为简单也最为广泛的一种异步加载方式,然后使用动态插入节点方法加载的文件都会 在加载后立即执行,javascript的执行一方面会占用浏览器js执行进程,另一方面也可能改变页面结构,而css 的执行