You can add a list that contains every child of the gridpane and each child's parent must have two integers row and column, therefor you'll just have to go through that list and see if it has the right coordinates ! (You should propably add a new class so you can store those coordinates), here is a minimal example of my solution
import java.util.ArrayList;
import java.util.List;
import javafx.scene.Node;
import javafx.scene.layout.GridPane;
public class SpecialGridPane extends GridPane {
List<NodeParent> list = new ArrayList<>();
public void addChild(int row, int column, Node node) {
list.add(new NodeParent(row, column, node));
setConstraints(node, column, row);
getChildren().add(node);
}
public Node getChild(int row, int column) {
for (NodeParent node : list) {
if (node.getRow() == row && node.getColumn() == column)
return node.getNode();
}
return null;
}
}
class NodeParent {
private int row;
private int column;
private Node node;
public NodeParent(int row, int column, Node node) {
this.row = row;
this.column = column;
this.node = node;
}
public int getRow() {
return row;
}
public int getColumn() {
return column;
}
public Node getNode() {
return node;
}
}