我需要动态地向对象数组添加值,并将该数组变量传递给函数。
如果我手动添加值,它可以正常工作。
Object[][] listData = {{"Cheese", "Pepperoni", "Black Olives"},{"Cheese",
"Pepperoni", "Black Olives"}};
这是需要使用 listData 。
的功能TableModel tblModel = new DefaultTableModel(new String[]{"Date", "Action", "Amount"}, listData);
但是如何从for循环中将值添加到 listData ?
ArrayList<Map<String, Object>> sampleArray = (ArrayList)myPremiumspaid.get("Data");
for(int x =0; x<sampleArray.size(); x++)
{
//sampleArray.get(x).get("YearMonth");
//listData[][] = ""; stuck here
}
答案 0 :(得分:2)
数组是固定大小,在创建数组对象后,您无法更新它的大小/放大它的大小。 因此,为了动态大小或自动增长大小的目的,您需要使用列表即。的的ArrayList 强>
Object[][] listData = {{"Cheese", "Pepperoni", "Black Olives"},{"Cheese",
"Pepperoni", "Black Olives"}};
相反:
List<List<Object>> listData=new ArrayList<List<Object>>();
listData.add(Arrays.asList("Cheese", "Pepperoni", "Black Olives"));
listData.add(Arrays.asList("Cheese", "Pepperoni", "Black Olives"));
但是这个ArrayList需要传递给一个带数组的函数,因此,你可以将 ArrayList 转换为数组对象。
TableModel tblModel = new DefaultTableModel(new String[]{"Date", "Action", "Amount"}, (Object[][]) listData.toArray());
但是如何从for循环中将值添加到listData中? 现在你可以这样做:
ArrayList<Map<String, Object>> sampleArray = (ArrayList)myPremiumspaid.get("Data");
for(int x =0; x<sampleArray.size(); x++)
{
//sampleArray.get(x).get("YearMonth");
listData.get(x).add(sampleArray.get(x).get("YearMonth"));
}
Codename One DefaultTableModel
有Json in jquery方法接受一个或一系列对象,所以只使用:
((DefaultTableModel)tblModel).addRow("Cheese", "Pepperoni", "Black Olives");
应该工作。