Java FX文本区域对齐

5

我希望在JavaFX文本区域中显示一段文字。

我的代码是:

TextArea txt = new TextArea();
txt.setEditable(false);
txt.setStyle("-fx-font-alignment: center");
txt.setText(text);

但我无法设置文本对齐方式(在 TextArea 内部)

我尝试了以下方法:

txt.setStyle("-fx-font-alignment: center");

但是它没有起作用

5个回答

7

将样式应用于文本子元素:

.text-area *.text {
    -fx-text-alignment: center;
}

奇怪的是,当我将它作为外部CSS加载到Scene Builder 17.0.0中并将.text-area类应用于TextArea时,Scene Builder无法识别在CSS检查器中更改了某些CSS。 - Wortig

4
我发现了一个仅使用CSS来水平居中textarea内容的解决方案。
我在CSS中使用了一个类:
```css ```
.centeredTextArea .scroll-pane .content .text {
    -fx-text-alignment: center;
}

并且在我添加之后

styleClass="centeredTextArea"

到我的文本区控件。


1
您可以使用Scene Builder来创建用户界面,它非常简单易用。 在那里,您可以轻松地使用"Java fx文本区域"以及其他所有功能。 您只需要导入jfoenix库,就可以开始使用了,而且无需编写代码。

虽然这个工具对开发人员很有用,但它并不构成他们问题的真正答案,请下次将这类讨论留作评论。 - Politic Revolutionnaire

0

尝试使用setStyle(-fx-padding: 0 10 0 10)。

在这种情况下,0 - 顶部 10 - 右侧 0 - 底部 10 - 左侧填充。

您可以将10替换为所需值。它只是在文本框中使用填充/空格适合您的文本。我曾经遇到过类似的问题。这个方法对我有用。


-5

我不知道你为什么想使用一个文本区域,但如果你只是想显示一些文本,你应该使用一个文本字段。

或者,如果要显示文本,请使用:

Text text = new Text("text");

但我不知道你想要做什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接