JavaFX将Gridpane放入BorderPane

时间:2016-03-06 15:21:27

标签: javafx gridpane borderpane

首先,我是Java的初学者。我正在尝试使用JavaFX在Java中创建一个Monopoly游戏。我在Gridpane中绘制了电路板。

我向你们提出的问题是如何将GridPane放在BorderPane的中心。 atm gridpane占据了整个屏幕。我希望它位于borderpane的中心,并将其他空间用于菜单和其他窗格。

GridPane

public class BordView extends GridPane {
private GridPane spelbord = new GridPane();

public BordView() {
    initNodes();
    layoutNodes();
}

private void initNodes(){
}

private void layoutNodes(){
    RowConstraints rowsEdge = new RowConstraints();
    rowsEdge.setPercentHeight(14);
    RowConstraints rowsMid = new RowConstraints();
    rowsMid.setPercentHeight(8);

    ColumnConstraints colEdge = new ColumnConstraints();
    colEdge.setPercentWidth(14);

    ColumnConstraints colMid = new ColumnConstraints();
    colMid.setPercentWidth(8);

    this.getColumnConstraints().addAll(colEdge, colMid,
            colMid, colMid, colMid, colMid, colMid, colMid, colMid, colMid, colEdge);
    this.getRowConstraints().addAll(rowsEdge, rowsMid,
            rowsMid, rowsMid, rowsMid, rowsMid, rowsMid, rowsMid, rowsMid, rowsMid, rowsEdge);

    this.setGridLinesVisible(true);
}

BorderPane

public class GameView extends BorderPane {
BorderPane borderpane = new BorderPane();
public GameView() {
    layoutNodes();

}
private void layoutNodes() {
    borderpane.setCenter(BordView);
}

1 个答案:

答案 0 :(得分:1)

根据发布的最新信息,我只能做出有根据的猜测:

您正在使用具有成分的BorderPane继承。最有可能borderpane永远不会添加到场景图中。您应该将内容添加到GameView本身:

this.setCenter(BordView);

而不是

borderpane.setCenter(BordView);

但我甚至不确定你从哪里获得BordView ......

也许你根本不需要继承。

顺便说一句:如果BorderPane除了中心之外没有其他元素,它将填满整个BorderPane

来自javadoc

  

如果可调整大小,[中心节点]将调整大小,填充顶部,底部,左侧和右侧节点之间的边框窗格的中心。