无法使用for循环从Jtable中获取所有行数据。

时间:2019-05-05 10:00:21

标签: java swing for-loop iteration

我正在尝试使用for循环从我的Jtable中获取行数据,但它给出了最后一行。下面是我的代码示例:

String item = null; String qty = null; String price = null;
for (int i = 0; i < table.getRowCount(); i++) {
    String f1 =item.getValueAt(i, 0).toString();
    String f2 =item.getValueAt(i, 1).toString();  
    String f3 =item.getValueAt(i, 2).toString(); 
    item = f1; qty = f2; price =f3;
}
Formatter fd = new Formatter();
System.out.println(fd.format("%-20s %5s %10s", item ,qty ,price ));

2 个答案:

答案 0 :(得分:1)

请尝试将示例代码的最后两行移动到循环中:在结束循环的}之前。

答案 1 :(得分:1)

您需要在每个循环中将新值重新分配给变量itemqtyprice。因此,只打印最后一个。如果您希望打印每行的值,请在循环的内部中包含打印到控制台代码。

for (int i = 0; i < table.getRowCount(); i++) {
    String f1 = item.getValueAt(i, 0).toString();
    String f2 = item.getValueAt(i, 1).toString();  
    String f3 = item.getValueAt(i, 2).toString(); 
    System.out.println(String.format("%-20s %5s %10s", f1 , f2, f3));
}

此外,方法String.format(..)对您来说可能更有趣。