JavaFX 内边距padding

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.stage.Stage;


public class PaddingTest extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        Pane pane = new Pane();
        Pane pane1 = new Pane();
        pane1.setPrefWidth(300);
        pane1.setPrefHeight(300);
        pane1.setBackground(new Background(new BackgroundFill(Color.BLUE, new CornerRadii(0), new Insets(0))));
        double padding = 10;
        // 只操作pane的内边距padding,padding会在集中在pane1的右侧和下侧
        // 只操作边框border和padding有相同的问题,必须结合layout
        // pane.setBorder(new Border(new BorderStroke(Color.TRANSPARENT, BorderStrokeStyle.SOLID, new CornerRadii(0), new BorderWidths(10))));
        pane.setPadding(new Insets(padding / 2));
        pane1.setLayoutX(padding);
        pane1.setLayoutY(padding);
        pane.getChildren().add(pane1);
        primaryStage.setScene(new Scene(pane));
        primaryStage.show();
    }
}

 

package za;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class StackPanePadding extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        Pane pane = new Pane();
        pane.setPrefSize(100, 100);
        pane.setBackground(new Background(new BackgroundFill(Color.rgb(12,40,60), new CornerRadii(0), new Insets(0))));
        StackPane stackPane = new StackPane();
        stackPane.getChildren().add(pane);
        stackPane.setPadding(new Insets(20));
        primaryStage.setScene(new Scene(stackPane));
        primaryStage.show();
    }
}

 


版权声明:本文为haoranhaoshi原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。