javafx - JxBrowser HEAVYWEIGHT 在 WINDOW_CLOSE_REQUEST 上处置

标签 javafx jxbrowser

我目前正在研究 JxBrowser 6.2 的评估许可证。

我按如下方式创建 BrowserView:

Browser browser = new Browser(BrowserType.HEAVYWEIGHT);
BrowserView browser_view = new BrowserView(browser);

我按如下方式附加 BrowserView 组件:

stage.setScene(new Scene(browser_view));

如果浏览器配置为在轻量级模式下运行,我可以执行:

browser_view.getBrowser().dispose();
Platform.exit();

但是,如果浏览器配置为在 HEAVYWEIGHT 模式下运行,则应用程序在执行时会挂起:

browser_view.getBrowser().dispose();

我可以在日志中看到已写入 Dispose 消息,但看起来 JxBrowser Chromium 进程从未接收/处理该消息。

有什么想法吗?

最佳答案

正如我之前回答的,解决方案是在隐藏(关闭)舞台后处置浏览器。
一个好的方法是将这些命令放在 JavaFX 应用程序的 stop() 方法上。
因此,无论您以哪种方式关闭窗口(通过单击关闭按钮或以编程方式调用 Platform.exit()),浏览器都会进行处理(整个应用程序将完成并退出)。

类似的事情:

@Override
public void stop() throws Exception {
    stage.hide();
    browser.dispose();
}

关于javafx - JxBrowser HEAVYWEIGHT 在 WINDOW_CLOSE_REQUEST 上处置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35820197/

相关文章:

java - 如何考虑MVC模式下的 "loader class"?

JavaFX 8 - 绑定(bind) TableView 选择模型属性

JavaFX FXML - 使用 fx :id 获取 MenuItem

java - 如何将 Java 和 jxbrowser 进程组合成单个自定义命名进程?

java - 一个 splitPane 的分隔线的单独 css 规则

使用 robot.move Mouse() 时,JavaFX 按键事件会延迟

linux - Linux 上的 JxBrowser 抛出 NoSuchMethodException : getWindow

Java JX浏览器 : Is it possible to draw over the JXBrowser Component?

java - JXBrowser在Ubuntu18.04中启动失败