向 JavaFX WebView 添加填充(不是 Android)

Gre*_*ott 3 java javafx webview

我想WebView在 JavaFX 中向 a 添加填充,就像可以向标签添加填充一样。

我已经在 Android 上找到了有关堆栈溢出的讨论WebView,并且它存在填充错误。但是,我想在桌面应用程序中添加WebViewa ,并在所有侧面进行填充。BorderPane

我尝试使用setPadding()但是,这个方法不存在。

有替代方案吗?

小智 6

您可以在标签上添加一个 margin 底部,以取代填充它的想法,或者您可以在加载 WebView 并在 html 内填充时使用 JS。像这样:

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        webView.loadUrl("javascript:document.body.style.padding=\"10%\";void 0");
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 请注意,JavaFX 没有“WebViewClient”类。安卓可以。也许你把两者搞混了?尽管OP确实链接到适用于Android的问答。然而,问题被标记为[tag:javafx]并讨论了JavaFX。而且总体思路在 JavaFX 中应该还是可行的。 (3认同)

tra*_*god 5

如此处所示,您可以使用可选布局约束来添加“子项外部周围的边距空间”。BorderPane

WebView webView = new WebView();
BorderPane.setMargin(webView, new Insets(16));
top.setCenter(webView);
Run Code Online (Sandbox Code Playgroud)

  • @GregGott 这个解决方案与 Kaneda 的解决方案不同,无论是在他们的评论还是他们的答案中。Kaneda 的评论说设置整个边框窗格的_padding_,而这个答案设置特定子节点的_margin_。全部在 JavaFX 内。Kaneda 的 _answer_ 放入网页的 JavaScript/HTML 文档中并在那里设置填充。另外,这个答案设置了边距,而不是填充。至于为什么“WebView”没有 padding 属性,那是因为它扩展了“Parent”而不是“Region”。这是有道理的。网页的样式/布局应由网页决定。 (4认同)