Agregar imágenes a un gridpane javafx

Estoy agregando una lista de imágenes de un directorio usando una lista de arrays. Cuando se agregan imágenes, mi ScrollPane se llena. ¿Cómo puedo mantener los espacios entre las imágenes?

aquí está mi código

File file = new File("D:\\SERVER\\Server Content\\Apps\\icons");
File[] filelist1 = file.listFiles();
ArrayList<File> filelist2 = new ArrayList<>();
hb = new HBox();

for (File file1 : filelist1) {
     filelist2.add(file1);
}

System.out.println(filelist2.size());
gridpane.setPadding(new Insets(50,50,50,50));
gridpane.setHgap(20);
gridpane.setVgap(20);

int imageCol = 0;
int imageRow = 0;

for (int i = 0; i < filelist2.size(); i++) {
    System.out.println(filelist2.get(i).getName());
    image = new Image(filelist2.get(i).toURI().toString());
    pic = new ImageView();
    pic.setFitWidth(130);
    pic.setFitHeight(130);
    pic.setImage(image);
    hb.getChildren().add(pic);
    gridpane.add(pic, imageCol, imageRow );

    imageCol++;

    // To check if all the 4 images of a row are completed
    if(imageCol > 2){
      // Reset Column
      imageCol=0;
      // Next Row
      imageRow++;
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta