textArea.setText() 错误的输出

textArea.setText() wrong output

我正在尝试将带有键和值的 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());}

如何解决这个问题?

每次你打电话给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());