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