javalayoutjavafxjavafx-2pane

Get the number of rows in a JavaFX GridPane?


I initialized a GridPane through SceneBuilder and inside the controller I want to conditionally add a row to the GridPane. I do not want to store an int for how many rows I initialized, I want to be able to get the number of rows from the GridPane object. Is that possible?


Solution

  • Hej j will, try this method:

    private int getRowCount(GridPane pane) {
            int numRows = pane.getRowConstraints().size();
            for (int i = 0; i < pane.getChildren().size(); i++) {
                Node child = pane.getChildren().get(i);
                if (child.isManaged()) {
                    Integer rowIndex = GridPane.getRowIndex(child);
                    if(rowIndex != null){
                        numRows = Math.max(numRows,rowIndex+1);
                    }
                }
            }
            return numRows;
        }
    

    This worked for me.

    Patrick