Search code examples
javajavafxgridpane

Possible to decide number of rows and columns in GridPane (JavaFX)


I was wondering if it is at all possible to decide the number of rows and columns a gridpane should have.


Solution

  • You can add the required number of ColumnConstraints and RowConstraints to the GridPane. For example:

    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.layout.ColumnConstraints;
    import javafx.scene.layout.GridPane;
    import javafx.scene.layout.RowConstraints;
    import javafx.stage.Stage;
    
    public class GridPaneForceColsAndRows extends Application {
    
        @Override
        public void start(Stage primaryStage) {
            GridPane root = new GridPane();
            root.setGridLinesVisible(true);
            final int numCols = 50 ;
            final int numRows = 50 ;
            for (int i = 0; i < numCols; i++) {
                ColumnConstraints colConst = new ColumnConstraints();
                colConst.setPercentWidth(100.0 / numCols);
                root.getColumnConstraints().add(colConst);
            }
            for (int i = 0; i < numRows; i++) {
                RowConstraints rowConst = new RowConstraints();
                rowConst.setPercentHeight(100.0 / numRows);
                root.getRowConstraints().add(rowConst);         
            }
            primaryStage.setScene(new Scene(root, 800, 600));
            primaryStage.show();
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }