2016-11-27 2 views
0

Я размещения изображений внутри HBox, где HBox находится внутри VBoxJavaFX с использованием HBox и VBox из петли для

FileInputStream seats_fileInputStream = new FileInputStream("seat.png"); 
Image seats_image = new Image(seats_fileInputStream,50,50,false,false); 

ImageView[] seats = new ImageView[30]; 

for(int i = 0;i<30;i++){ 
    seats[i] = new ImageView(seats_image); 
} 

HBox seatsRaw_hbox[] = new HBox[5]; 
VBox seatsLine_vbox = new VBox(); 

for(int i=0;i<5;i++){ 
    seatsRaw_hbox[i]= new HBox(); 
    for(int j=0;j<6;j++){ 
     seatsRaw_hbox[i].getChildren().addAll(seats[j]);    
    } 

    seatsLine_vbox.getChildren().addAll(seatsRaw_hbox[i]); 

} 

BorderPane Test = new BorderPane(); 
Test.setCenter(seatsLine_vbox); 

в 6 должен отображать изображения в каждом HBox где есть 5 HBox ES это общее количество и поместить их в VBox. Но я продолжаю получать только одну строку, где я должен получить 5 строк !!!

Изображение выхода:

enter image description here

ответ

0

Это глупая ошибка немного. В цикле for я помещаю j < 6 где j представляет индекс массива изображений, где он должен начинать с 0 до 29, но вместо этого он просто использует первые 6 и останавливается. Мне пришлось создать еще одну переменную, где она начнется с 0 и пройдет весь путь до 29. Поэтому это модифицированный код:

int seatsCount = 0; 
for(int i=0;i<5;i++){ 
    seatsRaw_hbox[i]= new HBox(); 
    for(int j=0;j<6;j++){  
     seatsRaw_hbox[i].getChildren().addAll(seats[seatsCount]); 
     seatsCount++; 
    } 
    seatsLine_vbox.getChildren().add(seatsRaw_hbox[i]); 

} 
Смежные вопросы