2015-06-30 75 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的数组类型吗? –