2017-12-05 10 views
0

私はTextAreaフィールドにキーと値を持つHas​​hMapを印刷しようとしています。 マップは、私はこのようにそれをプリントアウトしようとすると、印刷されています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());