我通过SceneBuilder初始化了一个GridPane,并且在控制器内部我想有条件地向GridPane添加一行。我不想为我初始化的行数存储一个int,我希望能够从GridPane对象中获取行数。这可能吗?
答案 0 :(得分:10)
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;
}
这对我有用。
帕特里克
答案 1 :(得分:6)
就我而言,我使用了Java Reflections(GridPane.java有私有方法 getNumberOfRows()):
Method method = gridPane.getClass().getDeclaredMethod("getNumberOfRows");
method.setAccessible(true);
Integer rows = (Integer) method.invoke(gridPane);
答案 2 :(得分:2)
使用java 9,您可以这样做:
myGridPane.getRowCount();
答案 3 :(得分:0)
这对我有用
GridPane.getRowConstraints().size()