You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:06:04