У меня есть JTable в JScrollPane, и данные поступают из базы данных. Ячейки доступны для редактирования, и я хочу сохранить новые значения (отредактированные) в базе данных. Проблема в том, что getValueAt (row, col) возвращает старые, неотредактированные значения.
Вот код, который берет значения из ячеек и вставляет их в базу данных.
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
int row = table.getEditingRow();
if(row == -1) return -1;
String name = tableModel.getValueAt(row, 0).toString();
String stringPrice = tableModel.getValueAt(row, 1).toString();
float price = Float.parseFloat(stringPrice);
products.updateProduct(name, price);
...
return 1;
А вот что я получаю в обновлении продукта (название, цена) метод:
UPDATE products
SET `prod_name` = 'OLD_NAME', `prod_price` = 'OLD_PRICE'
WHERE `id` = 4
вместо:
UPDATE products
SET `prod_name` = 'NEW_NAME', `prod_price` = 'NEW_PRICE'
WHERE `id` = 4
Возможно, есть простое решение, но я не могу понять это. Любая помощь приветствуется.