добавление изображений в панель сетки javafx

Я добавляю список изображений из каталога с помощью массива. Когда изображения добавляются, моя ScrollPane переполняется. Как я могу сохранить интервалы между изображениями?

вот мой код

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

введите здесь описание изображения


person Kumaranath Fernado    schedule 19.08.2014    source источник
comment
Прочитайте javadoc gridpane. Часть «Необязательные ограничения макета».   -  person Uluk Biy    schedule 19.08.2014
comment
Можете ли вы опубликовать изображение проблемы, с которой вы столкнулись?   -  person ItachiUchiha    schedule 22.08.2014
comment
Дело в том, что у меня низкая репутация, я не могу загрузить фото. Могу я вместо этого написать вам?   -  person Kumaranath Fernado    schedule 24.08.2014
comment
у меня очень мало опыта работы с javascript, попробуйте пример .setMargin: image.setMargin(new Insets(2,2,2,2))   -  person Dasith    schedule 28.08.2014
comment
image.setMargin(new Insets(2,2,2,2)) должен быть исправлен как GridPane.setMargin(imageview, new Insets(2,2,2,2));   -  person Kumaranath Fernado    schedule 28.08.2014


Ответы (1)


Попробуйте использовать HBox и VBox.

По сути, они похожи на маленькие контейнеры, в которых вы храните свои вещи и можете добавлять в них пробелы!

HBox ab = new HBox(10); <--The 10 is adding space (Answer to your question)

Если вы хотите добавить что-то в HBox, просто напишите

ab.getChildren().addAll(your content here);
person Indigo    schedule 16.10.2014