繁体   English   中英

使用for循环中的HBox和VBox的javafx图像显示

[英]javafx image display using the HBox and the VBox from for loop

我把里面横向盒图像在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);

在每个HBox中应显示6张图像,总共有5个HBox并将它们放入VBox 但是我总是只得到一行,而我应该得到5行!!!

输出图像:

在此处输入图片说明

这是一个愚蠢的错误。 在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]);

}  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM