JavaFX中如何为HBox布局内的每个Rectangle形状添加右侧外边距
问题解答
JavaFX布局中实现该需求有两种常用方案,可根据你的实际场景选择:
- 方案1:所有矩形右侧间距一致的场景,直接设置HBox的
spacing属性
该属性会自动在HBox的所有相邻子节点之间添加固定间距,无需单独给每个矩形设置,实现最简单。 - 方案2:需要给不同矩形设置不同大小的右侧外边距的场景,调用
HBox.setMargin()静态方法单独配置
该方法可以给指定子节点自定义边距,Insets构造参数依次为上、右、下、左四个方向的边距值,仅需要右侧边距时把另外三个方向设为0即可。
完整示例代码
import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.layout.HBox; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; @Override public void start(Stage stage) throws Exception { HBox hBox = new HBox(); // 方案1:统一设置所有子节点间距为20,和方案2二选一即可 hBox.setSpacing(20); Rectangle rect1 = new Rectangle(100, 100, Color.BLACK); Rectangle rect2 = new Rectangle(100, 100, Color.GREEN); Rectangle rect3 = new Rectangle(100, 100, Color.YELLOW); // 方案2:单独给前两个矩形设置右侧20的外边距,不会在HBox最右侧产生多余空白 // HBox.setMargin(rect1, new Insets(0, 20, 0, 0)); // HBox.setMargin(rect2, new Insets(0, 20, 0, 0)); hBox.getChildren().addAll(rect1, rect2, rect3); Scene scene = new Scene(hBox, 500, 500); stage.setScene(scene); stage.show(); }
内容的提问来源于stack exchange,提问作者Jay.
相关产品推荐
相关产品推荐

