首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GridPane JAVAFX中的水平行中心

GridPane JAVAFX中的水平行中心
EN

Stack Overflow用户
提问于 2016-11-07 18:16:25
回答 1查看 762关注 0票数 0

我想在我的GridPane中水平地居中一行。我知道如何对列进行水平居中( root.getColumnConstraints().get(0).setHalignment(HPos.CENTER);),但无法找到行的这种方法。我只能更改列的“对齐”属性和行的“对齐”属性。但我需要的是行的H对齐,它并不存在。那我该怎么做呢?

这就是我最后想要的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-08 13:34:58

不可能在整个行的using约束上这样做,但是可以使用GridPane.setHalignment设置行中所有GridPane.setHalignment的属性,该属性优先于ColumnConstraints

示例

代码语言:javascript
复制
@Override
public void start(Stage primaryStage) {
    Text text00 = new Text("text");
    Text text01 = new Text("text");
    Text text02 = new Text("text");
    Text text10 = new Text("text");
    Text text11 = new Text("text");
    Text text12 = new Text("text");
    GridPane gridPane = new GridPane();

    ColumnConstraints cConstraints = new ColumnConstraints();
    cConstraints.setHalignment(HPos.LEFT);
    cConstraints.setHgrow(Priority.ALWAYS);
    gridPane.getColumnConstraints().addAll(cConstraints, cConstraints);
    gridPane.addColumn(0, text00, text01, text02);
    gridPane.addColumn(1, text10, text11, text12);

    GridPane.setHalignment(text11, HPos.CENTER);
    GridPane.setHalignment(text01, HPos.CENTER);

    Scene scene = new Scene(gridPane);

    primaryStage.setScene(scene);
    primaryStage.show();
}

请注意,在将节点添加到GridPane之后,还可以通过迭代子节点来完成此操作:

代码语言:javascript
复制
int alignRow = 1;
for (Node n : gridPane.getChildren()) {
    Integer row = GridPane.getRowIndex(n);
    int rowNumber = row == null ? 0 : rowNumber.intValue();
    if (rowNumber = alignRow) {
        GridPane.setHalignment(n, HPos.CENTER);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40471829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档