我正在使用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);
答案 0 :(得分:11)
我有同样的问题。
标签中的文字无法居中或右对齐,或者......
当标签大于文本时,也不会出现在CSS或mylabel.setTextAlignment(TextAlignment.Center)
之类的代码中。
我使用mylabel.setAlignment(Pos.CENTER)
来解决问题;
也适用于-fx-alignment:center;
答案 1 :(得分:3)
您可以使用以下代码解决此问题:
Label title = new Label("Trees");
title.setId("subtitle");
GridPane.setHalignment(title, HPos.CENTER);
gridpane.add(title, 0, 0, 2, 1);
这是我得到的结果:
注意:强>
-fx-text-alignment
标记将文本置于标签边框内。如果标签的宽度正好符合文本所需的大小,则无法更改对齐方式,但如果设置的宽度大于文本需要,则可以将标签内的文本对齐。边界。