加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何将JavaFX WebView设置为与场景一样大?

发布时间:2020-12-15 04:31:02 所属栏目:Java 来源:网络整理
导读:我有一个 JavaFX WebView,我希望它与开始时的场景一样大.如果我可以通过场景调整大小,这将是完美的. 但是现在我只关注初始尺寸. @Overridepublic void start(Stage stage) { try { Scene scene = new Scene(createWebViewPane(),1920,1080); scene.getStyles
我有一个 JavaFX WebView,我希望它与开始时的场景一样大.如果我可以通过场景调整大小,这将是完美的.
但是现在我只关注初始尺寸.

@Override
public void start(Stage stage) {
    try {
        Scene scene = new Scene(createWebViewPane(),1920,1080);
        scene.getStylesheets().add(getClass().getResource("Styles/application.css").toExternalForm());
        stage.setScene(scene);
        stage.show();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

上面的代码创建了一个宽度为1920px,高度为1080px的场景. createWebViewPane()在窗格上创建WebView.

private Pane createWebViewPane() {
    final Pane pane = new Pane();
    pane.minWidth(1920);
    pane.minHeight(1080);
    WebView browser = new WebView();
    browser.minWidth(1920);
    browser.prefWidth(1920);
    browser.minHeight(1080);
    browser.prefHeight(1080);
    WebEngine webEngine = browser.getEngine();
    webEngine.load(getClass().getResource("index.html").toExternalForm());
    pane.getChildren().add(browser);
    return pane;
}

在那里,我尝试设置宽度/高度.我也在样式表中设置它.

web-view{
    -fx-font-scale: 1;  
    -fx-min-width: 1920px;   
    -fx-min-height: 1080px;   
    -fx-pref-width: 100%; 
    -fx-pref-height: 100%;
}

但是这些属性似乎都不会影响WebView.它仍然具有默认大小.宽800像素,高600像素.

解决方法

将WebView添加到 StackPane,“将尝试调整每个子节点的大小以填充其内容区域”.调整框架大小以查看StackPane如何根据默认的Pos.CENTER重排WebView内容.

image

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

/** @see https://stackoverflow.com/a/33824164/230513 */
public class WebViewPane extends Application {

    @Override
    public void start(Stage primaryStage) {
        StackPane root = new StackPane();
        WebView webView = new WebView();
        WebEngine webEngine = webView.getEngine();
        webEngine.load("http://www.example.com");
        root.getChildren().add(webView);
        Scene scene = new Scene(root);
        primaryStage.setTitle("WebView");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读