如何在JavaFX中实现两个ImageView的上下垂直排列?
解决JavaFX中ImageView上下排列的问题
嘿,这事儿很好解决!你现在用的HBox是水平布局容器,天生就是用来把组件并排摆放的,所以两个ImageView才会左右显示。要让它们上下排列,换成VBox(垂直布局容器)就搞定啦,它会自动把组件从上到下依次排布。
直接修改你的代码,把HBox替换成VBox就行,其他逻辑完全不用动:
public void start(Stage primaryStage) { Image image = new Image("imageresource/Tagline.jpg"); ImageView imageView1 = new ImageView(image); imageView1.setFitHeight(100); imageView1.setPreserveRatio(true); Image image2 = new Image("imageresource/main.jpg"); ImageView imageView2 = new ImageView(image2); imageView2.setFitHeight(200); imageView2.setPreserveRatio(true); // 把HBox换成VBox VBox vbox = new VBox(); // 可选:设置图片之间的间距,让布局更美观 vbox.setSpacing(15); vbox.getChildren().addAll(imageView1, imageView2); Scene scene = new Scene(vbox); primaryStage.setScene(scene); primaryStage.show(); }
另外给你个小技巧:如果需要调整组件在垂直方向上的对齐方式,还可以用vbox.setAlignment(Pos.CENTER)这类方法,让图片居中、靠上或者靠下排列,完全根据你的需求来调整就行。
内容的提问来源于stack exchange,提问作者Sakib Nawar Tanmoy
相关产品推荐
相关产品推荐

