imageGrid = new GridPane();
imageGrid.prefWidthProperty().bind(gallerie.widthProperty().multiply(1.00));
imageGrid.prefHeightProperty().bind(gallerie.heightProperty().multiply(0.9));
imageGrid.setPadding(new Insets(20, 20, 20, 20));
imageGrid.setHgap(20);
imageGrid.setVgap(20);
imageGrid.setStyle("-fx-background-color: #154BE5");
... ... ...
static void loadCurrentImages(ArrayList<File> imageFiles) {
ArrayList<ImageView> ivs = new ArrayList<>();
int i = 0;
int k = 0;
int j = 0;
for (File f : imageFiles) {
ImageView iv = new ImageView();
iv.setFitWidth(100);
iv.setPreserveRatio(true);
iv.setSmooth(true);
iv.setImage(new Image(f.toURI().toString()));
ivs.add(iv);
imageGrid.add(ivs.get(i), k, j);
i++;
k++;
if(k > imageGrid.widthProperty().intValue() / 100){ //???????
k = 0;
j++;
}
}
}
в последнем предложении if я хочу использовать текущий размер сетки, но я понятия не имею, как его получить, потому что он сам привязан к другому размеру (галерее)
я хочу получить текущее значение int
FlowPane
? Если все ваши узлы имеют одинаковую ширину, этот макет должен быть эквивалентенGridPane
плюс автоматический перенос строк, который автоматически обновляется при изменении размераFlowPane
. Кроме того, еслиgalerie
иimageGrid
имеют общего предка, вероятно, есть лучший способ сохранить ширину одинаковой, чем привязка. Выберите правильные макеты в качестве предков... - person fabian   schedule 08.11.2019