将文本附加到 TextArea

Appending text into TextArea

我正在尝试创建 TextArea

@FXML 
private TextArea ta;

以及我想要得到的:

for (int i=1; i<=5; i++) {
    ta.setText("    Field " + i + "\n");
}

但它只显示最后一行:Field 5.
谁能帮忙。提前致谢。

当您调用 setText( "...") 时,您替换了已经存在的文本。因此,要么在设置之前构造您的 String,要么附加它。 试试这个:

String text="";
for (int i=1;i<=5;i++) {
    text = text + "    Field "+i+"\n";
}
ta.setText(text);

注意:您可能会获得更好的性能,并且考虑 "good practice" 使用 "StringBuilder" 而不是 String 来构建这样的 String。但这应该可以帮助您了解问题所在,而不会使其过于复杂。

方法 .setText() 只将一个值放入字段中。如果一个值存在,旧的将被替换。尝试:

private StringBuilder fieldContent = new StringBuilder(""); 
for (int i=1;i<=5;i++)
 {
   //Concatinate each loop 
   fieldContent.append("    Field "+i+"\n");
 }
 ta.setText(fieldContent.toString());

这是实现它的一种方法。

另一种方法是使用 appendText 方法

for (int i=1; i<=5; i++) {
    ta.appendText("    Field " + i + "\n");
}