我正在尝试在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();
}
我的输出:
答案 0 :(得分:3)
您需要将Vgrow Priority
的{{1}}添加为TextField
Always
在您的代码中:
GridPane.setVgrow(environment, Priority.ALWAYS);
输出: