我正在尝试创建TextArea
,
@FXML
private TextArea ta;
以及我想要得到的东西:
for (int i=1; i<=5; i++) {
ta.setText(" Field " + i + "\n");
}
但它只显示最后一行:Field 5
。
谁能帮忙。提前致谢。
答案 0 :(得分:5)
方法.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());
这是实现它的一种方式。
答案 1 :(得分:4)
当您致电setText( "...")
时,您将替换已存在的文字。所以要么在设置之前构造你的String,要么追加它。
试试这个:
String text="";
for (int i=1;i<=5;i++) {
text = text + " Field "+i+"\n";
}
ta.setText(text);
注意:你可能会获得更好的性能,并且使用“StringBuilder”代替String来构建像这样的字符串被认为是“好习惯”。但这应该可以帮助你理解问题所在,而不会让它过于复杂。