У меня есть код для добавления и удаления одной строки для моего JTable
, но это вызывает проблемы, такие как не точное вычисление общей суммы и вычитания после удаления ее из JTable
. JTable
служит «корзиной» для добавления и удаления товаров в корзине.
Кнопка add to cart
для добавления строки в корзину:
if (e.getSource() == movebutton) {
TableModel model1 = productTable.getModel();
int index[] = productTable.getSelectedRows();
Object[] row = new Object[4];
DefaultTableModel model2 = (DefaultTableModel) cartTable.getModel();
for (int i = 0; i < index.length; i++) {
row[0] = model1.getValueAt(index[i], 0);
row[1] = model1.getValueAt(index[i], 1);
row[2] = model1.getValueAt(index[i], 2);
model2.addRow(row);
getSum();
}
Код где добавляются общие элементы:
public void getSum() { //column 02 is where the item's prices are listed
for (int i = 0; i < cartTable.getRowCount(); i++) {
total += Double.parseDouble(cartTable.getValueAt(i, 2).toString());
}
cartAmount.setText("Total: P " + Double.toString(total));
}
}
Код кнопки remove an item from the cart
:
try {
for (int i = 0; i < cartTable.getRowCount(); i++) {
total = total - Double.parseDouble(cartTable.getValueAt(i, 2).toString());
}
cartAmount.setText("Total: P " + Double.toString(total));
if (total <= 0.0) {
total = 0.0;
}
{
int getSelectedRowForDeletion = cartTable.getSelectedRow();
model2.removeRow(getSelectedRowForDeletion);
JOptionPane.showMessageDialog(null, "Item removed from cart");
}
} catch (NumberFormatException ex) {
ex.printStackTrace();
} catch (ArrayIndexOutOfBoundsException ex) {
}
}
Вот некоторые фотографии при добавлении и удалении элемента:
Как я также могу сделать Удалить кнопку, чтобы не работать, когда ни одна строка не выбрана? Как попросить пользователя выбрать строку перед удалением? Также исключите возможность расчета отрицательной суммы. Спасибо