我尝试使用JXBrowser将Cesium(HTML5 WebGL 3D地图工具)集成到JavaFX应用程序中。我需要在地图前面安装JavaFX覆盖面板,但它不起作用。
当我在LIGHTWEIGHT模式下实例化一个新的(JX)浏览器时,它可以工作,我可以看到我的叠加层,但渲染非常慢,因为它是由CPU完成的。我真的需要HEAVYWEIGHT模式来满足我的需求,但我不明白为什么我不能在HEAVYWEIGHT浏览器前放置Node(StackPane或任何其他)。
我试图将我的叠加层放到自己的BrowserView Stackpane孩子身上,尝试在容器中一个接一个地添加...还尝试了toBack(),toFront()但没有成功。所有适用于标准容器和LIGHTWEIGHT模式的东西都不适用于HEAVYWEIGHT。
任何想法或代码示例?
非常感谢帮助,因为我必须做一个概念验证。
非常感谢。
答案 0 :(得分:1)
在HEAVYWEIGHT呈现模式下,呈现HTML内容的本机Chromium窗口嵌入到JavaFX容器中。大多数JavaFX控件都是轻量级的,因此它们无法在重量级控件之上显示。这是JavaFX / Swing GUI工具包的众所周知的限制。在你的情况下,你只需要使用LIGHTWEIGHT渲染模式,或者,为了使用HEAVYWEIGHT,当你在HEAVYWEIGHT控件上显示一些东西时,你需要摆脱这种情况。