规则" -fx-text-alignment"不工作?

时间:2015-05-19 13:06:11

标签: java javafx javafx-css

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

enter image description here

2 个答案:

答案 0 :(得分:11)

我有同样的问题。

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

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

的CSS

答案 1 :(得分:3)

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

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

这是我得到的结果:

enter image description here

注意: -fx-text-alignment标记将文本置于标签边框内。如果标签的宽度正好符合文本所需的大小,则无法更改对齐方式,但如果设置的宽度大于文本需要,则可以将标签内的文本对齐。边界。