JavaFX 节点部分边框
JavaFX Node partial border
有一个节点,例如 VBox,我正在尝试添加边框,我可以想到两种方法 - 使用 css 或使用新的 Border () 等。
如何去除部分边框?即删除边框的底部
您可以为不同边的边框指定不同的样式
使用边框
@Override
public void start(Stage primaryStage) {
Region root = new Region();
root.setBorder(new Border(new BorderStroke(Color.RED, Color.RED, Color.RED, Color.RED,
BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.NONE, BorderStrokeStyle.SOLID,
CornerRadii.EMPTY, new BorderWidths(5), Insets.EMPTY)));
Scene scene = new Scene(root, 300, 300);
primaryStage.setScene(scene);
primaryStage.show();
}
使用内联 css
root.setStyle("-fx-border-style: solid solid none solid; -fx-border-width: 5; -fx-border-color: red;");
使用 css 样式表
.root { /* modify the selector according to your needs */
-fx-border-style: solid solid none solid;
-fx-border-width: 5;
-fx-border-color: red;
}
none
在 javafx 13 上不起作用。我尝试将其更改为 hidden
并且有效。
.root { /* modify the selector according to your needs */
-fx-border-style: solid solid hidden solid;
-fx-border-width: 5;
-fx-border-color: red;
}
将 border-width 设置为 0 有效 (JavaFX 17):示例:
#header
{
-fx-border-width: 0 0 2px 0;
-fx-border-color: black;
-fx-border-style: solid;
}
这里只能在底部获取边框 - 顺序:上、右、下、左。
有一个节点,例如 VBox,我正在尝试添加边框,我可以想到两种方法 - 使用 css 或使用新的 Border () 等。
如何去除部分边框?即删除边框的底部
您可以为不同边的边框指定不同的样式
使用边框
@Override
public void start(Stage primaryStage) {
Region root = new Region();
root.setBorder(new Border(new BorderStroke(Color.RED, Color.RED, Color.RED, Color.RED,
BorderStrokeStyle.SOLID, BorderStrokeStyle.SOLID, BorderStrokeStyle.NONE, BorderStrokeStyle.SOLID,
CornerRadii.EMPTY, new BorderWidths(5), Insets.EMPTY)));
Scene scene = new Scene(root, 300, 300);
primaryStage.setScene(scene);
primaryStage.show();
}
使用内联 css
root.setStyle("-fx-border-style: solid solid none solid; -fx-border-width: 5; -fx-border-color: red;");
使用 css 样式表
.root { /* modify the selector according to your needs */
-fx-border-style: solid solid none solid;
-fx-border-width: 5;
-fx-border-color: red;
}
none
在 javafx 13 上不起作用。我尝试将其更改为 hidden
并且有效。
.root { /* modify the selector according to your needs */
-fx-border-style: solid solid hidden solid;
-fx-border-width: 5;
-fx-border-color: red;
}
将 border-width 设置为 0 有效 (JavaFX 17):示例:
#header
{
-fx-border-width: 0 0 2px 0;
-fx-border-color: black;
-fx-border-style: solid;
}
这里只能在底部获取边框 - 顺序:上、右、下、左。