JavaFX 向矩形形状添加边距

JavaFX add margin to Rectangle shape

在下面的布局中,如何为每个矩形添加右边距。例如,有什么方法可以增加保证金吗?

    @Override
    public void start(Stage stage) throws Exception {

        HBox hBox = new HBox();
        Rectangle rect1 = new Rectangle(100, 100, Color.BLACK);
        Rectangle rect2 = new Rectangle(100, 100, Color.GREEN);
        Rectangle rect3 = new Rectangle(100, 100, Color.YELLOW);

        hBox.getChildren().addAll(rect1, rect2, rect3);
        Scene scene = new Scene(hBox, 500, 500);
        stage.setScene(scene);
        stage.show();

    }

HBox 在 HBox 元素之间有 spacing 属性 for space。这够了吗?

https://api.javafx.dev/javafx.graphics/javafx/scene/layout/HBox.html#spacingProperty

您还可以控制整个 HBox 的整体边距(使用插图)。使用插图,您可以设置右侧,如果这是目标的话。

https://api.javafx.dev/javafx.graphics/javafx/scene/layout/HBox.html#setMargin(javafx.scene.Node,javafx.geometry.Insets)

如@Phil Freihofner 所述,您可以使用 hBox.setSpacing() 设置间距,使用静态方法设置边距 HBox.setMargin():

    Rectangle rect1 = new Rectangle(100, 100, Color.BLACK);
    Rectangle rect2 = new Rectangle(100, 100, Color.GREEN);
    Rectangle rect3 = new Rectangle(100, 100, Color.YELLOW);
    
    HBox hBox = new HBox(rect1, rect2, rect3);
    
    // Space between rectangles
    hBox.setSpacing(20);
    
    // Margins
    HBox.setMargin(rect1, new Insets(30, 0, 30, 30));
    HBox.setMargin(rect2, new Insets(30, 0, 30, 0));
    HBox.setMargin(rect3, new Insets(30, 30, 30, 0));

不设置间距或边距的输出:

输出设置间距和边距: