将文本附加到TextArea中

时间:2015-04-16 11:21:28

标签: javafx javafx-2

我正在尝试创建TextArea

@FXML 
private TextArea ta;

以及我想要得到的东西:

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

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

2 个答案:

答案 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来构建像这样的字符串被认为是“好习惯”。但这应该可以帮助你理解问题所在,而不会让它过于复杂。