AnchorPane中的GridPane

时间:2015-05-30 07:09:24

标签: javafx-8

我把一个Gridpane放在AnchorPane中,我的Gridpane有一组TextField,Label和Buttons,我希望它放在Anchorpane中,但是我的GridPane只是粘在AnchorPane的左上方我为GridPane设置了一个setTopanchor等...但是它不适用于我希望它放在中心的Anchorpane。这是样本。是否有任何缺失,因为它并不适用于AnchorPane?我将等待你的帮助。

enter image description here

1 个答案:

答案 0 :(得分:1)

如果我的问题是正确的,并且您希望将GridPane集中在AnchorPane中,则可以在每个AnchorPane宽度或高度变化(anchorPane.widthProperty().addListener())上尝试这样的事情:

    double x = (anchorPane.getWidth() - GRID_SIZE) / 2;
    double y = (anchorPane.getHeight() - GRID_SIZE) / 2;

    AnchorPane.setRightAnchor(grid, x);
    AnchorPane.setTopAnchor(grid, y);
    AnchorPane.setLeftAnchor(grid, x);
    AnchorPane.setBottomAnchor(grid, y);

基本上,您需要计算每一侧的偏移量并设置锚点。

以下是StackPane和AncorPane的一些演示代码: https://github.com/varren/JavaFX-Center-GridPane-in-other-Pane/tree/master/src/sample

但是如果你只想让你的网格获得完整的AnchorPane大小,你可以简单地设置

    AnchorPane.setRightAnchor(grid, .0);
    AnchorPane.setTopAnchor(grid, .0);
    AnchorPane.setLeftAnchor(grid, .0);
    AnchorPane.setBottomAnchor(grid, .0);

并且不需要监听AnchorPane大小更改。