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

时间:2016-05-30 21:37:38

标签: javafx fxml

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

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

1 个答案:

答案 0 :(得分:12)

你基本上有两个选择:

  1. 使用可以使标签居中的布局窗格,让标签成为其首选尺寸" (即大到足以容纳文本)或
  2. 使标签填充其容器的整个宽度,并将其对齐属性设置为居中。
  3. 您在评论中说,您使用AnchorPane作为标签的父级。对于布局窗格来说,这通常不是一个特别好的选择(基本上你必须对每个控件的边界进行硬编码),而且你不能把它放在其中(不管没有大量的工作,不管怎么说)。因此,将锚定窗格作为父窗格,您将简化为选择2:

    label.setMaxWidth(Double.MAX_VALUE);
    AnchorPane.setLeftAnchor(label, 0.0);
    AnchorPane.setRightAnchor(label, 0.0);
    label.setAlignment(Pos.CENTER);
    

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

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