У меня есть JTable под названием «Корзина», где пользователь может добавлять товары перед их покупкой. Единственный редактируемый столбец в этой таблице - это последний столбец «Количество», который позволяет пользователям изменять количество продуктов, которые они хотят купить. По умолчанию при добавлении товаров это значение равно единице. Когда я создаю счет с этими значениями по умолчанию, таблица БД ORDERS успешно обновляется. Однако, если я изменил сумму в ячейке количества, введя ее, я получу исключение, которое не знаю, как исправить. Может показаться, что целочисленное значение, которое я пытаюсь получить из этого столбца, возвращается в виде строки, а не целого числа.
В основном у меня есть целое число tempStock, в котором я храню количество продуктов. Я получаю это значение из модели таблицы в строке "i" и последнем столбце "4".
int tempStock = (int)cartModel.getValueAt(i, 4);
Когда программа добавляет новую строку в эту таблицу, столбец fourht по умолчанию равен 1, и когда я вызываю это значение, я получаю целое число. Однако, если я введу в этот столбец какое-то другое значение, я больше не получаю int, а String.
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
Я нашел временное решение, проверив тип переменной:
/** Check if Quantity field was updated **/
if (cartModel.getValueAt(i, 4).getClass().getName().equals("java.lang.Integer")) {
tempStock = (int)cartModel.getValueAt(i, 4);
} else {
tempStock = Integer.parseInt((String)cartModel.getValueAt(i, 4));
}