如何删除分隔符中的 space?
How can i remove the space inside a Separator?
我在 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
中的 space。所以我设置了 CSS 属性 -fx-padding: 0px;
但它似乎不起作用。
我该怎么做??!!
这是图像
Separator
分隔符由两个元素组成。
分隔符根节点与cssclass分隔符
和子元素 Region with css class line
如果你想删除黑框中间的线,你必须修改 region(line) child 并设置它的边框 insets 和 宽度 到 0px
例如:
Separator separator = new Separator();
separator.setStyle(""
+ "-fx-border-width: 1px;"
+ "-fx-border-color: black;"
+ "-fx-padding: 0px;"
+ "");
stage.show()
在 stage.show() 之后,您将可以通过 lookup 或 getChildrenUnmodifiable()[= 访问其子项20=]
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
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");
如果您还不知道它,也许您应该查看 Scenic View 如果您想检查 JavaFx 应用程序,这是一个很好的工具。
我在 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
中的 space。所以我设置了 CSS 属性 -fx-padding: 0px;
但它似乎不起作用。
我该怎么做??!!
这是图像
Separator
分隔符由两个元素组成。
分隔符根节点与cssclass分隔符 和子元素 Region with css class line
如果你想删除黑框中间的线,你必须修改 region(line) child 并设置它的边框 insets 和 宽度 到 0px
例如:
Separator separator = new Separator();
separator.setStyle(""
+ "-fx-border-width: 1px;"
+ "-fx-border-color: black;"
+ "-fx-padding: 0px;"
+ "");
stage.show()
在 stage.show() 之后,您将可以通过 lookup 或 getChildrenUnmodifiable()[= 访问其子项20=]
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
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");
如果您还不知道它,也许您应该查看 Scenic View 如果您想检查 JavaFx 应用程序,这是一个很好的工具。