2015-06-30 104 views
1

我正在使用JavaFX 8創建應用程序。 我使用拖放動態更改網格窗格的內容。 我希望每行或每行/列迭代GridPane內容。 JavaFX允許通過指定行和列來添加GridPane中的節點。JavaFX - 每行迭代GridPane節點 - 每行讀取GridPane的節點

gridPane.add(node, col, row); 

我想通過指定行和列來以同樣的方式讀取一個GridPane的節點。
我想有類似下面的源東西(下面的代碼是不正確的),

for(int row = 0; row < gridPaneHeight; row++) { 
    for(int col = 0; row < gridPaneWidth; col++) { 
     Node node = gridPane.get(col, row); 
    } 
} 
+0

上面沒有代碼。你是指下面的代碼 – Madhan

+0

錯誤的單詞。對不起。我編輯了這個問題。 –

回答

3

int[][] gridPaneNodes = new int[gridPaneWidth][gridPaneHeight] ; 
for (Node child : gridPane.getChildren()) { 
    Integer column = GridPane.getColumnIndex(child); 
    Integer row = GridPane.getRowIndex(child); 
    if (column != null && row != null) { 
     gridPaneNodes[column][row] = child ; 
    } 
} 

(或者,你可以只跟蹤哪些如何放置其中,當你把它們放在那裏細胞......)

然後,你可以做

for (int row = 0; row < gridPaneHeight; row++) { 
    for(int col = 0; row < gridPaneWidth; col++) { 
     Node node = gridPaneNodes[column][row] ; 
    } 
} 
+0

感謝您的快速回答。 –

+0

它是Node的數組類型嗎? –