Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX WebView不会在对话框上呈现可视内容<;T>;_Java_Javafx_Javafx 9 - Fatal编程技术网

JavaFX WebView不会在对话框上呈现可视内容<;T>;

JavaFX WebView不会在对话框上呈现可视内容<;T>;,java,javafx,javafx-9,Java,Javafx,Javafx 9,以下代码显示了JDK 9.0.1(Windows)中的一种奇怪行为: 对话框片段 该对话框片段适用于JDK 8,但不适用于JDK 9 并列比较 左侧阶段代码段,右侧对话框代码段 实际问题 我做错什么了吗为什么会发生这种情况?我阅读了JDK 9的一些更改,但没有看到任何相关内容 提前感谢您的合作。我收到了完全相同的问题。当我在另一个上下文中显示WebView时(例如,在选项卡视图中(在选项卡中))HTML文件会正确显示。但是当我使用 dialog.getDialogPane().setConte

以下代码显示了JDK 9.0.1(Windows)中的一种奇怪行为:

对话框片段 该对话框片段适用于JDK 8,但不适用于JDK 9

并列比较 左侧阶段代码段,右侧对话框代码段

实际问题 我做错什么了吗为什么会发生这种情况?我阅读了JDK 9的一些更改,但没有看到任何相关内容


提前感谢您的合作。

我收到了完全相同的问题。当我在另一个上下文中显示WebView时(例如,在选项卡视图中(在选项卡中))HTML文件会正确显示。但是当我使用

dialog.getDialogPane().setContent(webView)

事实并非如此。我的代码与上面的对话框片段几乎相同(除了HTML文件的位置),我无法找出问题所在


甚至没有显示只有一个标题的简单HTML。

我在将内容呈现到JfxPanel中时遇到类似问题,它呈现为空白,但HTML内容可以在我的java控制台中打印。(我正在使用JxBrowser,但它们非常相似)

我通过将webEngine渲染模式从重量级改为轻量级解决了这个问题

本质上,Swing/JavaFx组件在大多数情况下都是轻量级的,如果我们将一个重量级组件堆叠在一个轻量级组件中,那么它将有渲染问题。
希望这有帮助

我也有同样的问题-疯狂的是,如果你把光标拖到Java9版本上,然后点击+拖动,你会看到文本被拖动。所以它就像是在渲染,但没有颜色…@MichaelLandes有趣。稍后我将花一些时间进行调查,但也许,只是也许,将css应用/重置到WebView节点或对话框可以解决此问题。@LouizFC我在尝试使用
getDialogPane().setContent(WebView)
将WebView放置到JavaFX警报对话框时遇到了同样的问题。。。你修好了吗?这是在我从JavaSDK8切换到SDK9时发生的。@不幸的是,我没有。我会花一些时间来调查,但我认为这是一个只能解决而不能完全解决的问题。@LouizFC我最终使用了一个TextArea,当然它在视觉上不如WebView好,但仍然有效。你最终解决了这个问题吗?我在JavaFX警报对话框中遇到了与WebView相同的问题<代码>getDialogPane().setContent(webView)
不显示webView。。。
Dialog<Void> dialog = new Dialog<>();
WebView webView = new WebView();
dialog.getDialogPane().setContent(webView);
webView.getEngine().load("http://docs.oracle.com/javafx/");
dialog.show();
private void loadSite(String url) throws IOException {
    CookieManager cookieManager = new CookieManager();
    CookieHandler.setDefault(cookieManager);
    URI uri = URI.create(url);
    Map<String, List<String>> headers = new HashMap<>();
    CookieHandler.getDefault().put(uri, headers);
    webEngine.getLoadWorker().stateProperty()
        .addListener((observable, oldValue, newValue) -> {
            System.out.println(newValue);
            if (newValue == Worker.State.SUCCEEDED) {
                System.out.println(cookieManager.getCookieStore().getCookies());
            }
        });
    webEngine.load(url);
}
Stage stage = new Stage();
final WebView webView = new WebView();
webView.getEngine().load("http://docs.oracle.com/javafx/");
stage.setScene(new Scene(webView));
stage.show();