JavaFX:表行多色边框样式

时间:2016-12-09 09:15:39

标签: css javafx tableview tablerow javafx-css

我想使用JavaFX在某些表行周围绘制自定义边框。在下图中,您可以看到当前状态。

this picture

我需要做的是用黄线填充黄线之间的空白。

我的第一个想法是定义两个样式并添加它们:

.tableRowStyle1{
    -fx-border-width: 3;
    -fx-border-style: solid;
    -fx-border-color: black;
}

.tableRowStyle2{
    -fx-border-color: yellow;
    -fx-border-style: segments(12, 12, 12, 12);
    -fx-border-width: 3;
}

不幸的是,我总是以黄色透明的虚线结束,将样式添加到TableRow的样式类的顺序无关紧要。

另一个想法是使用线性和径向渐变。线性渐变不会产生虚线。径向渐变似乎是这样做的,但破折号的长度不均匀,因为它们意味着适用于圆而不是矩形。

非常感谢有关此主题的任何帮助!

1 个答案:

答案 0 :(得分:2)

如果您使用不同的样式规则,则会替换另一个。

您需要在与逗号分隔值相同的规则中指定不同的边框样式。 @Override public void start(Stage primaryStage) { Region region = new Region(); region.getStyleClass().add("border-region"); Scene scene = new Scene(region, 300, 300); scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm()); primaryStage.setScene(scene); primaryStage.show(); } 可用于修改初始偏移量。

示例

.border-region {
    -fx-background-color: red;
    -fx-border-color: yellow, black;
    -fx-border-style: segments(12, 12), segments(12, 12) phase 12;
    -fx-border-width: 3;
}

<强>的style.css

PseudoClass

BTW:考虑使用PseudoClass而不是样式类,因为样式似乎可以打开/关闭,使用spark.yarn.executor.memoryOverhead更容易,因为您不需要担心多次添加样式类。