如何在 JavaFX/FXML 中对齐中心标签?
How to align center Label in JavaFX / FXML?
如何在 javafx 中将 Label 的文本居中?在 .css 样式表中或直接在 fxml 中。
我在 .css 中尝试了 Label { -fx-text-alignment: center;}
,但它不起作用。即使在场景生成器中它也不起作用。
你基本上有两个选择:
- 使用可以使标签居中的布局窗格,并让标签成为它的"preferred size"(即刚好足以容纳文本),或者
- 使标签填满其容器的整个宽度,并将其对齐 属性 设置为居中。
您在评论中说您正在使用 AnchorPane
作为标签的父级。这通常不是布局窗格的特别好的选择(本质上您必须对每个控件的边界进行硬编码),并且您不能在其中居中放置东西(无论如何都需要大量工作)。因此,将锚定窗格作为父级,您只能选择 2:
label.setMaxWidth(Double.MAX_VALUE);
AnchorPane.setLeftAnchor(label, 0.0);
AnchorPane.setRightAnchor(label, 0.0);
label.setAlignment(Pos.CENTER);
显然,所有这些也可以在 FXML 中设置。
不过,一般来说,我建议使用更合适的 layout pane 并在该布局窗格上设置适当的属性以使标签居中。
如何在 javafx 中将 Label 的文本居中?在 .css 样式表中或直接在 fxml 中。
我在 .css 中尝试了 Label { -fx-text-alignment: center;}
,但它不起作用。即使在场景生成器中它也不起作用。
你基本上有两个选择:
- 使用可以使标签居中的布局窗格,并让标签成为它的"preferred size"(即刚好足以容纳文本),或者
- 使标签填满其容器的整个宽度,并将其对齐 属性 设置为居中。
您在评论中说您正在使用 AnchorPane
作为标签的父级。这通常不是布局窗格的特别好的选择(本质上您必须对每个控件的边界进行硬编码),并且您不能在其中居中放置东西(无论如何都需要大量工作)。因此,将锚定窗格作为父级,您只能选择 2:
label.setMaxWidth(Double.MAX_VALUE);
AnchorPane.setLeftAnchor(label, 0.0);
AnchorPane.setRightAnchor(label, 0.0);
label.setAlignment(Pos.CENTER);
显然,所有这些也可以在 FXML 中设置。
不过,一般来说,我建议使用更合适的 layout pane 并在该布局窗格上设置适当的属性以使标签居中。