Получите количество строк в GridPane JavaFX?

Я инициализировал GridPane через SceneBuilder и внутри контроллера я хочу условно добавить строку в GridPane. Я не хочу хранить int для того, сколько строк я инициализировал, я хочу иметь возможность получить количество строк из объекта GridPane. Это возможно?

3 ответов


Hej j будет, попробуйте этот метод:

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

это сработало для меня.

Патрик


в моем случае я использовал отражения Java (GridPane.java имеет частный метод getNumberOfRows () ):

Method method = gridPane.getClass().getDeclaredMethod("getNumberOfRows");
method.setAccessible(true);
Integer rows = (Integer) method.invoke(gridPane);

С java 9 вы можете сделать следующее:

myGridPane.getRowCount();