如何在javafx中创建跨越全高的textarea和侧边栏?

时间:2015-03-13 16:45:35

标签: java javafx grid-layout

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

我面临的问题是textarea没有达到全高。我可以用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();
}

我的输出:

enter image description here

1 个答案:

答案 0 :(得分:3)

您需要将Vgrow Priority的{​​{1}}添加为TextField

Always

在您的代码中:

GridPane.setVgrow(environment, Priority.ALWAYS);

输出:

enter image description here