将文本附加到 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");
}
我正在尝试创建 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");
}