gpt4 book ai didi

java - 方法 "resize()"不适用于JavaFX中的Webview

转载 作者:行者123 更新时间:2023-11-30 06:23:47 26 4
gpt4 key购买 nike

在我的代码的一部分中,我想更改 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 键时,控制台上会显示“已按下 Enter!”“可调整大小!” 消息,但 webEngine对象的大小没有改变!!!

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

最佳答案

您应该尝试将 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); }
}

关于java - 方法 "resize()"不适用于JavaFX中的Webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47634657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com