BrowserType.HEAVYWEIGHT 模式下不显示 JXBrowser 覆盖

JXBrowser overlay does not appear with BrowserType.HEAVYWEIGHT mode

我正在尝试使用 JXBrowser 将 Cesium(一种 HTML5 WebGL 3D 地图工具)集成到 JavaFX 应用程序中。我需要在地图前面使用 JavaFX 覆盖面板,但它不起作用。

当我在 LIGHTWEIGHT 模式下实例化一个新的 (JX) 浏览器时,它可以工作,我可以看到我的叠加层,但是渲染速度很慢,因为它是由 CPU 完成的。我真的需要 HEAVYWEIGHT 模式来满足我的需要,但我不明白为什么我不能在 HEAVYWEIGHT 浏览器前面放置一个节点(StackPane 或任何其他)。

我试图将我的叠加层放到自己的 BrowserView Stackpane 子级上,试图在一个容器中一个接一个地添加两者...还尝试了 toBack()、toFront() 但没有成功。所有适用于标准容器和 LIGHTWEIGHT 模式的东西都不适用于 HEAVYWEIGHT。

任何想法或代码示例?

非常感谢您的帮助,因为我必须进行概念验证。

非常感谢。

在 HEAVYWEIGHT 呈现模式下,呈现 HTML 内容的本机 Chromium window 嵌入到 JavaFX 容器中。大多数 JavaFX 控件都是轻量级的,因此它们不能显示在重量级控件之上。这是 JavaFX/Swing GUI 工具包的一个众所周知的限制。在您的情况下,您只需要使用 LIGHTWEIGHT 渲染模式,或者要使用 HEAVYWEIGHT,当您在 HEAVYWEIGHT 控件上显示某些内容时,您需要摆脱这种情况。