如何在JavaFX/FXML中对齐中心标签?

Mou*_*qch 5 javafx fxml

如何在javafx中居中标签的文本?在.css样式表中或直接在fxml中.

我尝试Label { -fx-text-alignment: center;}过.css但是它不起作用.即使在场景构建器中它也不起作用.

Jam*_*s_D 13

你基本上有两个选择:

  1. 使用可以使标签居中的布局窗格,让标签成为"首选大小"(即大小足以容纳文本),或者
  2. 使标签填充其容器的整个宽度,并将其对齐属性设置为居中.

你在评论中说你使用的AnchorPane是标签的父母.对于布局窗格来说,这通常不是一个特别好的选择(基本上你必须对每个控件的边界进行硬编码),而且你不能把它放在其中(不管没有大量的工作).因此,将锚定窗格作为父窗格,您将简化为选择2:

label.setMaxWidth(Double.MAX_VALUE);
AnchorPane.setLeftAnchor(label, 0.0);
AnchorPane.setRightAnchor(label, 0.0);
label.setAlignment(Pos.CENTER);
Run Code Online (Sandbox Code Playgroud)

显然,所有这些都可以在FXML中设置.

但是,一般情况下,我建议使用更合适的布局窗格,并在该布局窗格上设置适当的属性以使标签居中.