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

标签 java javafx gridpane

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

最佳答案

怎么样

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

关于JavaFX - 迭代每行 GridPane 节点 - 读取每行 GridPane 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31145884/

相关文章:

java - Struts 2、多 View 和 jQuery - 如何重用通用代码?

java - 如何获取 Google App Engine 管理员邮件地址?

JavaFX:如何在 TreeView 中添加复选框和按钮?

javafx - 尝试使用 JavaFX Gridpane 推断鼠标拖动的位置

java - 从 Date() 开始的上周日期

java - (android) 启动我的应用程序时出现错误 java.lang.IllegalStateException

Javafx TableView 未显示所有列中的数据

JavaFX 在 css 中设置不可编辑文本字段的外观

java - 为什么在 FXML 中添加两个 ColumnConstraint?

css - 将 css 样式应用到 gridpane 行