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

6

我希望创建类似于预定义的“虚线”样式(-fx-border-style: dashed)的边框样式。

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


边框:2像素虚线蓝色;它的宽度取决于您使用它的div(或其他元素)。 - divy3993
1个回答

17
请参考JavaFX CSS参考文档中的Region部分(链接),特别是-fx-border-style的可能值。您可以使用segments(...)来定义任意线段长度:还有line-cap(square、butt或round)和line-join(miter、bevel或round)的设置选项。
快速示例:
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);
    }
}

使用

custom-dashed-border.css:

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

提供

在此输入图片描述


1
如何在指定的方向上添加边框?例如border-left、border-right等。 - Asif Mushtaq
@AsifMushtaq -fx-border-color: 透明蓝色 透明 透明 透明 - jpell
顶部 底部 左侧 右侧 - jpell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接