JavaFX 节点部分边框
Posted
技术标签:
【中文标题】JavaFX 节点部分边框【英文标题】:JavaFX Node partial border 【发布时间】:2017-08-27 05:42:33 【问题描述】:有一个节点,例如 VBox 我正在尝试添加一个边框,我可以想到两种方法 - 使用 css 或使用 new Border() 等。
如何删除部分边框?即删除边框的底部
【问题讨论】:
如果要去掉边框的底部,使用:border-bottom: none; 这应该是 CSS 吧? 是的,它会是 CSS。 我会试试的 @Leon:在 JavaFX 中,css 不提供与 html 中相同的属性集。border-bottom
不起作用。
【参考方案1】:
可以为不同边的边框指定不同的样式
使用边框
@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;
【讨论】:
【参考方案2】: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;
【讨论】:
Hidden 好像还在使用边框的空间 隐藏和没有都不起作用 - JavaFX 17。正在寻找解决方案。【参考方案3】:将边框宽度设置为 0 有效(JavaFX 17):示例:
#header
-fx-border-width: 0 0 2px 0;
-fx-border-color: black;
-fx-border-style: solid;
在这里您只能在底部获得边框 - 顺序:上、右、下、左。
【讨论】:
以上是关于JavaFX 节点部分边框的主要内容,如果未能解决你的问题,请参考以下文章