JavaFX 使用 Window 调整 TextField 的大小

JavaFX Resizing TextField with Window

在 JavaFX 中,如何在用户调整 window 大小时在 width/length 中调整大小的 hbox(BorderPane 布局)内创建文本字段?

您可以将文本字段的 HGROW 设置为 Priority.ALWAYS

每当 HBox 改变其宽度时,这将使 TextField 变为 shrink/grow。

MCVE :

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        TextField textField = new TextField();

        HBox container  = new HBox(textField);
        container.setAlignment(Pos.CENTER);
        container.setPadding(new Insets(10));

        // Set Hgrow for TextField
        HBox.setHgrow(textField, Priority.ALWAYS);

        BorderPane pane = new BorderPane();
        pane.setCenter(container);
        Scene scene = new Scene(pane, 150, 150);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

输出: