1

I'm trying to populate a JTable with data from a map that contains Strings and floats. Here is how I'm trying to do it, but I get the same data over and over.

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;
}
4

1 回答 1

2

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

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

  data[i][0] = entry.getKey();
  data[i][1] = entry.getValue().getMyFloat();
  i++;
}
于 2013-05-28T15:11:17.273 回答