BrowserType.HEAVYWEIGHT模式下不显示JXBrowser叠加层

时间:2016-05-12 12:38:12

标签: javafx webview overlay jxbrowser

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

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

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

任何想法或代码示例?

非常感谢帮助,因为我必须做一个概念验证。

非常感谢。

1 个答案:

答案 0 :(得分:1)

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