2016-05-12 172 views
0

我正在嘗試使用JXBrowser將Cesium(一種HTML5 WebGL 3D地圖工具)整合到JavaFX應用程序中。我需要在地圖前面的JavaFX覆蓋面板,但它不起作用。JXBrowser覆蓋圖不會與BrowserType.HEAVYWEIGHT模式一起出現

當我在LIGHTWEIGHT模式下實例化一個新的(JX)瀏覽器時,它可以工作,我可以看到我的覆蓋圖,但渲染非常緩慢,因爲它是由CPU完成的。我真的需要HEAVYWEIGHT模式來滿足我的需求,但我不明白爲什麼我不能在HEAVYWEIGHT瀏覽器前面放置Node(StackPane或其他)。

我試圖把我的覆蓋到自己的BrowserView Stackpane兒童,試圖在容器中添加一個一個一個...還試圖back(),toFront()沒有成功。與標準容器和LIGHTWEIGHT模式一起工作的所有東西都不適用於HEAVYWEIGHT。

任何想法或代碼示例?

幫助將非常感激,因爲我必須做一個概念驗證。

非常感謝。

回答

0

在HEAVYWEIGHT渲染模式下,呈現HTML內容的本機Chromium窗口嵌入到JavaFX容器中。大多數JavaFX控件都是輕量級的,所以它們不能在重量級控件上顯示。這是JavaFX/Swing GUI工具包的一個衆所周知的限制。在你的情況下,你只需要使用LIGHTWEIGHT渲染模式,或者使用HEAVYWEIGHT,當你在HEAVYWEIGHT控件的頂部顯示某些東西時,你需要擺脫這種情況。