用Map数据填充JTable

时间:2013-05-28 15:06:55

标签: java swing loops map jtable

我正在尝试使用包含字符串和浮点数的地图中的数据填充JTable。以下是我尝试这样做的方法,但我一遍又一遍地获得相同的数据。

private JTable buildTable(Map<String, Float> mapData){

   String columnNames[] = { "MyString", "MyFloat" };
   Object[][] data = new Object[mapData.size()][2];

   for(int i = 0; i < mapData.size(); i++){

      for(Map.Entry<String, Float> entry : mapData.entrySet()){

         data[i][0] = entry.getKey();
         data[i][1] = entry.getValue().getMyFloat();
         break;
      }
   }

   JTable table = new JTable(data, columnNames);

   return table;
}

1 个答案:

答案 0 :(得分:2)

内部循环在外部循环的每次迭代中将所有键/值对写入相同的数组索引。实际上,我们只需要一个循环,而不是两个循环。一个单独的计数器来增加索引会有所帮助。

int i = 0;
for(Map.Entry<String, Float> entry : mapData.entrySet()) {

  data[i][0] = entry.getKey();
  data[i][1] = entry.getValue().getMyFloat();
  i++;
}