2016-05-12 11 views
0

Ich versuche Cäsium (ein HTML5 WebGL 3D-Kartenwerkzeug) in eine JavaFX-Anwendung mit JXBrowser zu integrieren. Ich brauche JavaFX-Overlay-Panel vor der Karte, aber es funktioniert nicht.JXBrowser-Overlay erscheint nicht mit BrowserType.HEAVYWEIGHT-Modus

Wenn ich einen neuen (JX) Browser im LIGHTWEIGHT-Modus instanziiere, funktioniert es, ich kann mein Overlay sehen, aber das Rendering ist sehr langsam, weil es von der CPU erledigt wird. Ich brauche wirklich den HEAVYWEIGHT-Modus für meine Bedürfnisse, aber ich verstehe nicht, warum ich keinen Node (StackPane oder andere) vor den HEAVYWEIGHT Browser stellen kann.

Ich habe versucht, mein Overlay auf die eigenen BrowserView Stackpane Kinder, versucht, beide nacheinander in einem Container hinzufügen ... Auch versucht, Back(), toFront() ohne Erfolg. Alles, was mit Standardcontainern und im LIGHTWEIGHT-Modus funktioniert, funktioniert nicht in HEAVYWEIGHT.

Irgendeine Idee oder Codebeispiel?

Hilfe wird sehr geschätzt, weil ich einen Proof of Concept machen muss.

Vielen Dank.

Antwort

0

Im HEAVEWEIGHT-Rendermodus ist ein natives Chromium-Fenster, das den HTML-Inhalt darstellt, in den JavaFX-Container eingebettet. Die meisten JavaFX-Steuerelemente sind leichtgewichtig und können daher nicht auf schwergewichtigen Steuerelementen angezeigt werden. Dies ist eine bekannte Einschränkung von JavaFX/Swing GUI Toolkits. In Ihrem Fall müssen Sie nur den LIGHTWEIGHT-Rendering-Modus verwenden, oder, um HEAVYWEIGHT zu verwenden, müssen Sie den Fall loswerden, wenn Sie etwas über dem HEAVYWEIGHT-Steuerelement anzeigen.