Javascript 显示OpenLayers地图时JavaFX WebView不准确

Javascript 显示OpenLayers地图时JavaFX WebView不准确,javascript,java,javafx,webview,openlayers-3,Javascript,Java,Javafx,Webview,Openlayers 3,我有一个JavaFX应用程序,它将OpenLayers合并到它的WebView中。我有一个简单的弹出窗口,当您将鼠标移到某个功能上时,它会显示该功能的名称。我面临的问题是,WebView中发生的任何事情都是非常不准确的。例如,当弹出窗口被触发时,它不会在鼠标离开功能后立即消失。我准备了一个小要点来强调这个问题。我在JavaFX for WebView中使用以下代码: private void initialize() { WebView view = new WebView();

我有一个JavaFX应用程序,它将OpenLayers合并到它的WebView中。我有一个简单的弹出窗口,当您将鼠标移到某个功能上时,它会显示该功能的名称。我面临的问题是,WebView中发生的任何事情都是非常不准确的。例如,当弹出窗口被触发时,它不会在鼠标离开功能后立即消失。我准备了一个小要点来强调这个问题。我在JavaFX for WebView中使用以下代码:

private void initialize() {
    WebView view = new WebView();
    webEngine = view.getEngine();

    URL urlOpenLayers = getClass().getResource("/html/trainmap.html");
    webEngine.setJavaScriptEnabled(true);
    webEngine.load(urlOpenOpenLayers.toExternalForm());
}
我在这里发布了这篇文章而不是GIS StackExchange,因为这似乎是JavaFX WebView的问题,而不是OpenLayers的问题。与Chrome中的预期代码相同


这是我调用
view.getEngine().getUserAgent()
Mozilla/5.0(Linux x86_64)AppleWebKit/602.1(KHTML,类似Gecko)JavaFX/8.0 Safari/602.1

似乎WebView正在使用Java Graphics 2D API呈现网页。在运行了一些测试之后,很明显JavaFX的这个组件已经多年没有更新了,因此无法处理很多现代web内容,比如OpenLayers


我遇到的一个解决方案是切换到JxBrowser,它在Chromium上运行。需要注意的是,JxBrowser不是免费使用的,但它有30天的试用期。

看来WebView正在使用Java Graphics 2D API呈现网页。在运行了一些测试之后,很明显JavaFX的这个组件已经多年没有更新了,因此无法处理很多现代web内容,比如OpenLayers

我遇到的一个解决方案是切换到JxBrowser,它在Chromium上运行。应该注意的是,JxBrowser不是免费使用的,但它有30天的试用期

我遇到的一个解决方案是切换到JxBrowser,它在Chromium上运行。应该注意的是,JxBrowser不是免费使用的,但它有30天的试用期

您还可以使用(JavaChromium嵌入式框架)在应用程序中嵌入Chromium。不幸的是,它只适用于AWT/Swing,而且它太复杂,无法将其嵌入其中——因此,如果您想使用这个库,就必须更改应用程序的结构

我遇到的一个解决方案是切换到JxBrowser,它在Chromium上运行。应该注意的是,JxBrowser不是免费使用的,但它有30天的试用期

您还可以使用(JavaChromium嵌入式框架)在应用程序中嵌入Chromium。不幸的是,它只适用于AWT/Swing,而且它太复杂,无法将其嵌入其中——因此,如果您想使用这个库,就必须更改应用程序的结构