Я извлекаю данные из базы данных и помещаю ее в jtable, из базы данных поступает 11 элементов, но только 1-й элемент печатается на jtable 11 раз, я не знаю, где я делаю ошибку, я использовал переменную цикла в чтобы он мог автоматически увеличиваться, но не работал.
try{
java.util.Vector v=DatabaseManager.getGroceryItems(bean.getCategoryId());
for(int i=0;i<v.size();i++){
GroceryItemsBean bean2=(GroceryItemsBean)v.elementAt(i);
row.add(bean2.getItemId());
row.add(bean2.getItemName());
row.add(bean2.getBarcode());
row.add(bean2.getStock());
row.add(bean2.getPurchasePrice());
row.add(bean2.getUnitPrice());
row.add(bean2.getDisc());
row.add(bean2.getTax());
row.add(bean2.getUnit());
dataModel.addRow(row);
}
}catch(Exception e){
e.printStackTrace();
javax.swing.JOptionPane.showMessageDialog(this, "error: "+e.getMessage());
}
Вам нужно создать новый "вектор строки" для каждой строки данных в базе данных:
GroceryItemsBean bean2=(GroceryItemsBean)v.elementAt(i);
Vector<Object> row = new Vector<Object>();
Я не вижу достаточно вашего кода, но он выглядит как новый объект row
в цикле, иначе он все еще имеет значения с первой итерации цикла.
Или вы должны очистить строку в конце каждой итерации.
dataModel.addRow(row);
row.clear()
setRowCount(0)
чтобы удалить все элементы из модели.