如何删除分离器内的空间



我在 VBox中创建了一个 Horizontal Separator

以下是代码:

Separator s = new Separator(Orientation.HORIZONTAL);
s.setStyle(""
    + "-fx-border-width: 1px;"
    + "-fx-border-color: black;"
    + "-fx-padding: 0px;"
    + "");
getChildren().add(s);

我想删除Separator内部的空间。因此,我设置了CSS属性-fx-padding: 0px;,但似乎不起作用。

我该怎么做?!!


这是图像分离器

分离器由两个元素组成。

saparator css class saparator root节点和一个儿童元素区域带有CSS class line

如果要删除黑匣子中间的线,就必须修改区域( line (孩子并设置其边框 insets width to 0px

例如:

Separator separator = new Separator();
separator.setStyle(""
    + "-fx-border-width: 1px;"
    + "-fx-border-color: black;"
    + "-fx-padding: 0px;"
    + "");
stage.show()

and after stage.show((您可以通过 lookup getChildrenunModififiabiaifaife((

Node line = separator.lookup(".line");
line.setStyle(""
    + "-fx-border-insets: 0px;"
    + "-fx-border-width: 0px;"
    + "");

separator.getChildrenUnmodifiable().get(0).setStyle(""
    + "-fx-border-insets: 0px;"
    + "-fx-border-width: 0px;"
    + "");

,第三,指标的选项

FontMetrics metrics = Toolkit.getToolkit().getFontLoader().getFontMetrics(label.getFont());
label.setPadding(new Insets(-metrics.getDescent(), 0, 0, 0));

和第四个界限的选项,范围不适用于所有节点,在这种情况下不起作用。

Text text = new Text();
text.setBoundsType(TextBoundsType.VISUAL);

作为最后一个选项,您可以添加 css 文件,该文件更改 .line class> class

的样式

app.css:

.line {
    -fx-border-width: 0px;
    -fx-border-insets: 0px;
}
.separator {
    -fx-padding: 0px;
    -fx-border-insets: 0px;
    -fx-border-width: 1px;
    -fx-border-color: black;
}

和您只需要将此CSS应用于您的场景。

scene.getStylesheets().add("App.css");

如果您已经不了解它,也许应该签出风景视图,如果您想检查Javafx应用程序,这是一个好工具。

最新更新