JavaFX - есть ли способ напечатать одно изображение несколько раз, используя imageview?
Учитывая код ниже, я пытаюсь распечатать одно изображение (хранится в переменной 'изображение') несколько раз. Какие-нибудь предложения относительно того, как я буду делать это? Любая информация будет полезна.
Image image = new Image("tileset.png");
ImageView tileset = new ImageView();
tileset.setImage(image);
Rectangle2D viewport1 = new Rectangle2D(0,16,16,16); //(selected pixels)
tileset.setViewport(viewport1);
int length = 40, width= 40; // declare size of array (print 40x40)
// loop through grid, fill every tile with image 'image'.
// currently only fills position (40,40) with the image.
for(int y = 0; y < length; y++)
{
for(int x = 0; x < width; x++)
{
GridPane.setConstraints(tileset,x,y);
}
}
root.getChildren().add(tileset);
1 ответ
Решение
Метод GridPane.setConstraints(tileset,x,y)
не добавляет дочерний элемент в gridpane, он просто устанавливает индексы дочернего узла. Чтобы добавить его в сетку, вы должны позвонить root.getChildren().add(tileset)
каждый раз в цикле с новым ImageView
,
Image image = new Image("tileset.png");
Rectangle2D viewport1 = new Rectangle2D(0,16,16,16); //(selected pixels)
int length = 40, width= 40; // declare size of array (print 40x40)
// loop through grid, fill every tile with image 'image'.
// currently only fills position (40,40) with the image.
for(int y = 0; y < length; y++)
{
for(int x = 0; x < width; x++)
{
ImageView tileset = new ImageView(image);
tileset.setViewport(viewport1);
GridPane.setConstraints(tileset,x,y);
root.getChildren().add(tileset);
}
}