在我的部分代码中,我想更改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键,但webEngine对象的大小不会改变!!!
有人可以帮我吗?感谢。
答案 0 :(得分: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); }
}