只有最后一个值是在jTable中从数据库打印

时间:2014-04-22 05:52:16

标签: java database swing jdbc jtable

我将把数据库中的库存记录显示为jTable。但是当我从数据库中检索值到jTable时,它只显示最后一个值。

while(rs.next())
{
   String vendor = rs.getString("VENDOR");
   String p_type = rs.getString("P_TYPE");
   String p_name= rs.getString("P_NAME");
   String units = rs.getString("UNITS");
   String unit_price = rs.getString("UNIT_PRICE");

   Stock_Table.setValueAt(vendor, 1, 0);
   Stock_Table.setValueAt(vendor, 2, 0);
   Stock_Table.setValueAt(vendor, 3, 0);
   Stock_Table.setValueAt(vendor, 4, 0);
}

2 个答案:

答案 0 :(得分:4)

首先,JavaDocs清楚地显示setValueAt(Object, int, int)两个int值表示该顺序中的行和列。

因此,根据您的示例,您要更新第1,2,3和4行的第一列。

其次,您应该避免将setValueAt用于此目的,而是将行添加到TableModel

请查看How to Use Tables了解详情

答案 1 :(得分:1)

尝试给出增量行,如下面的代码。

int currentRow=1;
while(rs.next())
{
   String vendor = rs.getString("VENDOR");
   String p_type = rs.getString("P_TYPE");
   String p_name= rs.getString("P_NAME");
   String units = rs.getString("UNITS");
   String unit_price = rs.getString("UNIT_PRICE");

   Stock_Table.setValueAt(vendor,currentRow, 1);
   Stock_Table.setValueAt(vendor,currentRow, 2);
   Stock_Table.setValueAt(vendor,currentRow, 3);
   Stock_Table.setValueAt(vendor,currentRow, 4);
   currentRow+=1;
}