JavaFX - 将GridPane扩展为父级的大小

时间:2014-09-18 11:59:15

标签: java javafx gridpane

我正在尝试为我的某个程序创建一个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

1 个答案:

答案 0 :(得分:1)

删除所有这些

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);

通过为此添加单独的列和行约束,您将以这种方式获得对每个单元格的更多控制。有关更详细的说明,请参阅javadoc。

相关问题