2017-12-05 27 views
0

TextArea 필드에 키와 값이있는 HashMap을 인쇄하려고합니다. 지도는이 같은 그것을 밖으로 인쇄 할 때 인쇄 :textArea.setText() wrong output

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());} 

해결 방법?

답변

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());