【问题标题】:The method "resize()" does not work for Webview in JavaFX方法“resize()”不适用于 JavaFX 中的 Webview
【发布时间】:2018-05-17 23:52:39
【问题描述】:

在我的部分代码中,我想更改 WebView 对象的大小。这是那部分代码:

    textbox.setOnKeyPressed(new EventHandler<KeyEvent>() {
    @Override
    public void handle(KeyEvent ke) {
        if(ke.getCode() == KeyCode.ENTER){

            System.out.println("Enter pressed!");
            if(webEngine.isResizable())
                  System.out.println("It's Resizable!");
            webEngine.resize(300,200);     //doesn't work!

        }
    }
    });

它编译并运行没有给出错误,当我按下回车键时,控制台上会显示 “Enter press!”“It's Resizable!” 消息,但是 webEngine对象大小不变!!!

有人可以帮我解决这个问题吗?谢谢。

【问题讨论】:

    标签: java javafx webview javafx-8


    【解决方案1】:

    您应该尝试将您的 WebView 放在您选择的容器中,然后调整容器的大小,您还应该在 if 语句周围加上括号并像这样添加调整大小

    VBox vbox = new VBox();
    vbox.getChildren().add(webView);
    if(vbox.isResizable()){
        System.out.println("It's Resizable!");
        vbox.resize(300,200);     //doesn't work!
    }
    

    我运行了这段代码来测试它,它运行完美,我的意思是它调整了大小

    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.TextField;
    import javafx.scene.input.KeyCode;
    import javafx.scene.layout.VBox;
    import javafx.scene.web.WebEngine;
    import javafx.scene.web.WebView;
    import javafx.stage.Stage;
    
    public class Main extends Application {
    
        @Override
        public void start(Stage primaryStage) {
            VBox vbox = new VBox();
            TextField textbox = new TextField();
            WebView webView = new WebView();
            WebEngine webEngine = webView.getEngine();
            webEngine.load("https://www.google.com/");
    
            textbox.setOnKeyPressed(ke -> {
                if(ke.getCode() == KeyCode.ENTER){
    
                    System.out.println("Enter pressed!");
    
                    if(vbox.isResizable()) {
                        System.out.println("It's Resizable!");
                        vbox.resize(300, 200);     //doesn't work!
                    }
                }
            });
    
            vbox.getChildren().addAll(textbox,webView);
            Scene scene = new Scene(vbox);
            Stage stage = new Stage();
            stage.setScene(scene);
            stage.show();
        }
    
        public static void main(String[] args) { launch(args); }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多