JavaFx标签 - 如何强制换行

6

我正在尝试向JavaFX标签写入文字。如果需要,我可以成功地实现换行来确保文本在标签长度超出时自动换行到新一行。

但现在的问题是,我需要添加文字至已有文本之后。虽然我可以成功实现这点,但却无法使新添加的文字从新的一行开始。

如果您能提供帮助,我将不胜感激。


http://stackoverflow.com/help/mcve - kleopatra
3个回答

9

我一直在寻找FXML中的多行标签技巧,多次访问了这篇文章(谷歌显示了这个结果,非常令人沮丧)。因此,我想在这里写下来。

我找到了以下代码以显示多行文本:

<Label text="${'number of registered\nreaders'}"/>

但是如果我定义变量

<fx:define>
    <String fx:id="LABEL_01" fx:value="${'number of registered\nreaders'}"/> 
</fx:define>

那么我不知道该如何引用它,我不能使用$LABEL_01


FXML中,您还可以使用这个:'&#xD;'。然后这段代码就可以工作了:

<fx:define>
    <String fx:id="LABEL_01" fx:value="number of registered&#xD;readers"/> 
</fx:define>

你可以这样使用LABEL_01

<Label text="$LABEL_01"/>

关于 $LABEL_01,绑定表达式没有变量简写,所以 ${LABEL_01} 将会生效。 - Groostav

7
只需添加一个换行符:
Label label = new Label();
label.setText("Hello\nWorld");

{btsdaf} - kleopatra
{btsdaf} - James_D
{btsdaf} - kleopatra
{btsdaf} - user3325416
如何使用FXML获得相同的结果?转义字符在此处无法工作: <Label text="ac\ntive"/> - Pochmurnik
找到了:https://dev59.com/v4fca4cB1Zd3GeqPfCcR<TextArea prefHeight="200.0" prefWidth="200.0" text="${'多行\n制表符'}" /> - Pochmurnik

0
你可以尝试类似这样的代码:
 yourlabel.setText(yourLabel.getText() + System.lineSeparator() + "New String");

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