首先,我是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);
}
答案 0 :(得分:1)
根据发布的最新信息,我只能做出有根据的猜测:
您正在使用具有和成分的BorderPane
继承。最有可能borderpane
永远不会添加到场景图中。您应该将内容添加到GameView
本身:
this.setCenter(BordView);
而不是
borderpane.setCenter(BordView);
但我甚至不确定你从哪里获得BordView
......
也许你根本不需要继承。
顺便说一句:如果BorderPane
除了中心之外没有其他元素,它将填满整个BorderPane
。
来自javadoc
如果可调整大小,[中心节点]将调整大小,填充顶部,底部,左侧和右侧节点之间的边框窗格的中心。