2

我正在尝试为我的一个程序创建一个 GUI。这是我第一次使用 JavaFX。

对于初学者,我想要一个占据整个窗口的 GridPane。

我已经尝试了所有我能找到的东西:setMinWidth/Height、setPrefSize、minWidth 等。没有任何效果。

以下是定义 GridPane 的部分代码,其中包含两个 Text 对象:

    //Grid layout
    GridPane grid = new GridPane();
    grid.setPrefSize(STAGE_WIDTH, STAGE_HEIGHT);
    grid.setMaxSize(Region.USE_COMPUTED_SIZE, Region.USE_COMPUTED_SIZE);
    grid.setMinSize(STAGE_WIDTH, STAGE_HEIGHT);

    //grid.minWidth(STAGE_WIDTH);
    //grid.minHeight(STAGE_HEIGHT);

    grid.setGridLinesVisible(true);
    grid.setAlignment(Pos.CENTER);
    grid.setHgap(10);
    grid.setVgap(10);
    grid.setPadding(new Insets(25, 25, 25, 25));

    //Text
    final Text count = new Text("Count");
    grid.add(count,0,0);

    final Text total = new Text("Total");
    grid.add(total,1,0);

    Scene scene = new Scene(grid, STAGE_WIDTH, STAGE_HEIGHT);
    primaryStage.setScene(scene);
    primaryStage.show();

有人知道如何成功编程这个简单的属性吗?一个占据整个窗口的 GridPane?我错过了什么?

谢谢LD

4

1 回答 1

2

删除所有这些

grid.setPrefSize(STAGE_WIDTH, STAGE_HEIGHT);
grid.setMaxSize(Region.USE_COMPUTED_SIZE, Region.USE_COMPUTED_SIZE);
grid.setMinSize(STAGE_WIDTH, STAGE_HEIGHT);
grid.minWidth(STAGE_WIDTH);
grid.minHeight(STAGE_HEIGHT);

ColumnConstraints可选地使用RowConstraints

ColumnConstraints cc = new ColumnConstraints(100, 100, Double.MAX_VALUE, 
                                     Priority.ALWAYS, HPos.CENTER, true);
grid.getColumnConstraints().addAll(cc, cc);

RowConstraints rc = new RowConstraints(20, 20, Double.MAX_VALUE, 
                                     Priority.ALWAYS, VPos.CENTER, true);
grid.getRowConstraints().addAll(rc, rc);

通过为每个单元格添加单独的列和行约束,您将获得对每个单元格的更多控制。请参阅 javadocs 以获得更详细的解释。

于 2014-09-18T12:35:45.980 回答