2016-03-06 122 views
0

首先,我是Java的初學者。我正在嘗試用JavaFX在Java中創建一個大富翁遊戲。我在Gridpane中繪製了該板。JavaFX將Gridpane放入BorderPane

我給你們的問題是如何將GridPane放在BorderPane的中心。 Atm Gridpane佔據整個屏幕。我希望它位於邊框的中心,並使用其他空間來顯示菜單和其他窗格。

的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

複製並粘貼問題中的代碼比鏈接到代碼圖片要好得多。 – lfurini

回答

0

基於目前的資料貼我只能做一個猜測:

您正在使用BorderPane與成分繼承。最有可能的borderpane永遠不會被添加到場景圖中。您應該將內容添加到GameView本身:

this.setCenter(BordView); 

,而不是

borderpane.setCenter(BordView); 

但我什至不知道你在哪裏得到的BordView從...

而且也許你不根本不需要繼承。

順便說一句:如果BorderPane除中心外沒有其他元素,則它將填滿整個BorderPane

根據JavaDoc

如果可調整大小,[中心節點]將被調整填充頂部,底部,左,右節點之間的邊界窗格的中心。