繁体   English   中英

在JFrame中部署javaFX Webengine

[英]Disposing javaFX webengine in JFrame

我的JFrame中有一个Web浏览器,我认为在退出应用程序时无法将其处理。

这是我的代码,试图做到这一点:

Platform.runLater(new Runnable() {
    @Override
    public void run() {
        webBrowserEngine.getLoadWorker().cancel();
        Platform.runLater(new Runnable() {
            @Override
            public void run() {
                Platform.exit();
                SwingUtilities.invokeLater(new Runnable() {
                    @Override
                    public void run() {
                        getMainFrame().dispose(); // Is set to dispose on close
                        // SwingUtilities.invokeLater(new Runnable() {
                            // @Override
                            // public void run() {
                                // System.exit(0);
                            // }
                        // });
                    }
                });
            }
        });
    }
});

窗口关闭,但是java进程停留,该行始终返回false:

webBrowserEngine.getLoadWorker().cancel();
Platform.exit();

强制FXApplicationThread终止。 与之相关的一切最终都将最终确定。 您可以通过扩展和覆盖WebEngine类以在finalize()触发器上处理不同的方式进行测试。

此外,在WebEngine本身中,还存在与URL处理例程相关的自处置程序的实现。

另外,WebEngine处理一些URLLoader以进行资源处理。 由于它们位于DLL中,因此有点奇怪,因为它们太原生了。

为了解决这个问题,我引入了一堆需要逻辑解决方法的MemoryAccessViolation异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM