规则“-fx-text-alignment”不起作用?

The rule "-fx-text-alignment" doesn't work?

我正在使用 JavaFX 创建一个简单的用户界面,其中使用了一些显示文本的标签。我尝试使用以下规则将文本移动到标签的中心:

-fx-text-alignment: center

但它不起作用,默认情况下文本仍位于左侧。我还检查过我没有使用任何其他可以覆盖它的规则。有任何想法吗? 这是 css 代码:

#subtitle
{
    -fx-font: bold italic 18pt "Arial";
    -fx-text-alignment: center;
    -fx-effect: dropshadow( one-pass-box, black, 8, 0.0, 2, 0 );
    -fx-text-fill: #1ebd1e;
}

Java代码:

Label title = new Label("Trees");
title.setId("subtitle");
grid.add(title, 0, 0, 2, 1);

您可以使用以下代码解决此问题:

Label title = new Label("Trees");
title.setId("subtitle");
GridPane.setHalignment(title, HPos.CENTER);
gridpane.add(title, 0, 0, 2, 1);

这是我得到的结果:

注: -fx-text-alignment 标签将使文本在标签边框内居中。如果标签的宽度恰好适合文本所需的大小,则无需更改对齐方式,但如果设置的宽度大于文本所需的宽度,则可以将文本对齐到标签的边框内。

我也遇到了同样的问题

标签中的文本不能居中或右对齐,或者... 既不在 CSS 中,也不在 mylabel.setTextAlignment(TextAlignment.Center) 之类的代码中,当标签大于文本时。

我改用mylabel.setAlignment(Pos.CENTER)来解决问题; 也适用于 CSS 和 -fx-alignment:center;