JavaFX - 每行迭代GridPane节点 - 每行读取GridPane的节点

时间:2015-06-30 18:36:46

标签: java javafx gridpane

我正在使用JavaFX 8创建一个应用程序。 我使用拖放动态更改网格窗格的内容。 我希望每行或每行/ col迭代GridPane内容。 JavaFX允许通过指定行和列在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);
    }
}

1 个答案:

答案 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] ;
    }
}