2016-12-12 1 views
0

Учитывая приведенный ниже код, я пытаюсь распечатать одно изображение (хранящееся в переменной «изображение») несколько раз. Любые предложения относительно того, как я буду заниматься этим? Любая информация была бы полезна.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); 
+0

Создание нескольких 'ImageView's в цикле, каждый из них с использованием тех же' Image' –

+0

Я возникли трудности Поступая таким образом, вы могли бы дать предложения относительно того, что нужно цикл содержит для получения несколько ImageView? Будет ли тип данных ImageView преобразован в массив? (также, спасибо за подсказку, по крайней мере, я должен где-то начать с этого момента) – asdf

ответ

2

Метод GridPane.setConstraints(tileset,x,y) не добавляет ребенка gridpane, он просто устанавливает показатели дочернего узла. Чтобы добавить его в 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); 
    } 
} 
Смежные вопросы