如何在 javafx 中创建横跨整个高度的文本区域和侧边栏?

How to create a textarea and sidebar spanning full height in javafx?

我正在尝试在 JavaFX 中创建一个 UI,它应该有两列和一行。行应从上到下跨度(100% 高度),列应分别为 80% 和 20% 宽。在第一列中,我正在创建一个文本区域,而第二列有一个带有多个按钮的侧边栏。

我面临的问题是文本区域没有达到全高。我可以以 px 为单位更改高度,但我想按百分比更改。我尝试添加 RowConstraint,但它不起作用。知道我应该如何进行吗?

public void start(Stage primaryStage)
{
    primaryStage.setTitle("Particles");
    primaryStage.setResizable(false);

    GridPane grid = new GridPane();
    grid.setVgap(10);
    grid.setHgap(10);

    RowConstraints row1 = new RowConstraints();
    row1.setPercentHeight(100);

    ColumnConstraints column1 = new ColumnConstraints();
    column1.setPercentWidth(80);
    ColumnConstraints column2 = new ColumnConstraints();
    column2.setPercentWidth(20);

    TextArea environment = new TextArea();  
    grid.add(environment, 0, 0);

    Button start = new Button("START");
    HBox hbBtn = new HBox(10);
    hbBtn.setAlignment(Pos.CENTER);
    hbBtn.getChildren().add(start);
    grid.add(hbBtn, 1, 0);

    Scene scene = new Scene(grid, 725, 500);
    primaryStage.setScene(scene);

    primaryStage.show();
}

我的输出:

您需要将 TextFieldVgrow Priority 添加为 Always

GridPane.setVgrow(environment, Priority.ALWAYS);

在您的代码中:

TextArea environment = new TextArea();
grid.add(environment, 0, 0);
GridPane.setVgrow(environment, Priority.ALWAYS);

输出: