4

我正在使用 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);

在此处输入图像描述

4

2 回答 2

14

我也有同样的问题。

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

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

于 2016-01-29T19:05:54.363 回答
4

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

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

这是我得到的结果:

在此处输入图像描述

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

于 2015-05-19T13:42:16.183 回答