textArea.setText()输出错误

时间:2017-12-05 19:24:15

标签: java hashmap textarea

我正在尝试将带有键和值的HashMap打印到TextArea字段中。 当我尝试将其打印出来时会打印出地图:

for(Map.Entry<Integer,String> entry : kodovi.entrySet()) { System.out.println(entry.getKey()+" : "+entry.getValue());}

但是当我尝试在这样的文本区域中打印出来时,它只打印出最后一个键和值。

for(Map.Entry<Integer,String> entry: kodovi.entrySet()){
    textArea.setText(entry.getKey()+" : "+entry.getValue());}

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

每次拨打textArea.setText(...)时, 最后一个电话会取代之前的任何内容。

您可以获取之前的内容并附加到其中, 但字符串连接效率低下。

使用StringBuilder构建字符串会更好, 然后设置内容:

StringBuilder sb = new StringBuilder();
for (Map.Entry<Integer, String> entry : kodovi.entrySet()) {
    sb.append(entry.getKey()).append(" : ").append(entry.getValue()).append("\n");
}

textArea.setText(sb.toString());