0

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

我对你们的问题是如何将 GridPane 放在 BorderPane 的中心。Atm 网格窗格占据了整个屏幕。我希望它位于边框的中心,并将其他空间用于菜单和其他窗格。

网格窗格

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);
}

边框窗格

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

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

1 回答 1

1

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

您正在使用BorderPane组合继承。很可能borderpane永远不会添加到场景图中。您应该将内容添加到GameView自身:

this.setCenter(BordView);

代替

borderpane.setCenter(BordView);

但我什至不确定你从哪里得到BordView...

另外,也许您根本不需要继承。

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

来自 javadoc

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

于 2016-03-06T17:13:44.603 回答