【问题标题】:JavaFX Node partial borderJavaFX 节点部分边框
【发布时间】:2017-08-27 05:42:33
【问题描述】:

有一个节点,例如 VBox 我正在尝试添加一个边框,我可以想到两种方法 - 使用 css 或使用 new Border() 等。

如何删除部分边框?即删除边框的底部

【问题讨论】:

  • 如果要去掉边框的底部,使用:border-bottom: none;
  • 这应该是 CSS 吧?
  • 是的,它会是 CSS。
  • 我会试试的
  • @Leon:在 JavaFX 中,css 不提供与 html 中相同的属性集。 border-bottom 不起作用。

标签: java css javafx border


【解决方案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;
    }
    

    在这里您只能在底部获得边框 - 顺序:上、右、下、左。

    【讨论】:

      猜你喜欢
      • 2019-11-20
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      相关资源
      最近更新 更多