无法使用JavaFX使网格居中

时间:2016-12-07 01:02:16

标签: java eclipse javafx gridpane

我正在使用 grid.setAlignment(Pos.CENTER); 将我的网格置于JavaFX场景中心,但它似乎无法正常工作。无论我给出什么位置,网格总是显示在场景的左上角。谁能看到我做错了什么?

我的整个代码(减去导入)如下:

*public class Main extends Application {
@Override
public void start(Stage stage) throws Exception {
Scene scene = new Scene(new Group(), 450, 250);

Button btn = new Button();
btn.setText("Run");


final ComboBox comboBox = new ComboBox();
comboBox.getItems().addAll(
"Phase 1",
"Phase 2",
"Phase 3",
"Phase 4",
"Phase 5"  
);

GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setVgap(10);
grid.setHgap(10);
grid.setPadding(new Insets(5, 5, 5, 5));
grid.add(new Label("Select Phase: "), 0, 0);
grid.add(comboBox, 1, 0);
grid.add(new Label("Select Data: "), 0, 1);
grid.add(btn, 0, 2);

Group root = (Group)scene.getRoot();
root.getChildren().add(grid);
stage.setScene(scene);


stage.show();
}*

谢谢!

1 个答案:

答案 0 :(得分:1)

这不是string output = string.Format("{0}:{1}", (int)timespan.TotalMinutes, timespan.Seconds); 的作用:它在网格窗格的范围内对齐网格窗格的整体内容(请参阅docs)。

网格窗格在其父级中的位置由其父级确定。如果您希望它居中,请使用知道如何居中的父级,例如grid.setAlignment(...)

StackPane