如何在JavaFX CSS中创建自定义边框样式?

krs*_*rsi 5 css javafx

我想创建类似于preifened"dashed"style(-fx-border-style: dashed)的边框样式.

如何使用自定义长度的短划线段,线帽和线连接在CSS中创建虚线边框?

Jam*_*s_D 12

请参阅JavaFX CSS参考Region,特别是可能的值-fx-border-style.您可以使用segments(...)定义任意线段长度:还有用于设置line-cap(square,butt,或round)和line-join(miter,bevelround).

快速举例:

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.layout.Region;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class CustomBorderExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        Region region = new Region();
        region.getStyleClass().add("custom-dashed-border");
        region.setMinSize(400, 400);
        StackPane root = new StackPane(region);
        root.setPadding(new Insets(16));
        Scene scene = new Scene(root, 480, 480);
        scene.getStylesheets().add("custom-dashed-border.css");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

定制虚线border.css:

.custom-dashed-border {
    -fx-border-color: blue ;
    -fx-border-width: 5 ; 
    -fx-border-style: segments(10, 15, 15, 15)  line-cap round ;
}
Run Code Online (Sandbox Code Playgroud)

这使

在此输入图像描述