我有一个TextArea,其中有一些提示文本,我想将其拆分为几行,但是由于某些原因,换行符在提示文本中不起作用。
代码:
TextArea paragraph = new TextArea();
paragraph.setWrapText(true);
paragraph.setPromptText(
"Stuff done today:\n"
+ "\n"
+ "- Went to the grocery store\n"
+ "- Ate some cookies\n"
+ "- Watched a tv show"
);
结果:
如您所见,文本未正确换行。有人知道如何解决这个问题吗?
答案 0 :(得分:3)
该提示在内部由Text类型的节点显示,该节点可以处理换行符。所以有趣的问题是为什么它们不显示?通过查看hintText属性可以揭示原因:它用空字符串静默替换所有\n
:
private StringProperty promptText = new SimpleStringProperty(this, "promptText", "") {
@Override protected void invalidated() {
// Strip out newlines
String txt = get();
if (txt != null && txt.contains("\n")) {
txt = txt.replace("\n", "");
set(txt);
}
}
};
一种解决方法(不确定它是否在所有平台上都可以工作-对我有帮助)是改为使用\r
:
paragraph.setPromptText(
"Stuff done today:\r"
+ "\r"
+ "- Went to the grocery store\r"
+ "- Ate some cookies\r"
+ "- Watched a tv show"
);