【问题标题】:JavaFX - Iterate GridPane nodes per row - Read Nodes of GridPane per rowJavaFX - 每行迭代 GridPane 节点 - 每行读取 GridPane 节点
【发布时间】:2015-09-17 16:46:56
【问题描述】:

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

【问题讨论】:

  • 上面没有代码,是不是下面的代码
  • 错字。我很抱歉。我编辑了问题。

标签: java javafx gridpane


【解决方案1】:

怎么样

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

【讨论】:

  • 感谢您的快速回答。
  • 是不是数组类型的Node?​​span>
猜你喜欢
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 1970-01-01
相关资源
最近更新 更多