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