So there are at least two problems in your setValueAt
method...
- Columns (and rows) are
0
indexed switch
statements will allow for a case to be executed and all child cases below as well...
So, this means...
public void setValueAt(Object value, int row, int column)
{
switch(column)
{
case 1:
basketItems.get(row).setBrand((String)value);
case 2:
basketItems.get(row).setModel((String)value);
case 3:
basketItems.get(row).setPrice((double)value);
case 4:
basketItems.get(row).setQuantity(Integer.parseInt((String) value));
case 5:
basketItems.get(row).setTotalPrice(Double.parseDouble((String) value));
}
}
If column
== 1
, the cases 1, 2, 3, 4 and 5 will be executed. If column
== 3
, the cases 3, 4 and 5 will be executed.
So, first, you will want to modify the switch
so that the case
s match the same order as the getValueAt
method and add a break
statement after each case
in order to prevent the following case
s from been executed, for example...
public void setValueAt(Object value, int row, int column)
{
switch(column)
{
case 0:
basketItems.get(row).setBrand((String)value);
break;
case 1:
basketItems.get(row).setModel((String)value);
break;
case 2:
basketItems.get(row).setPrice((double)value);
break;
case 3:
basketItems.get(row).setQuantity(Integer.parseInt((String) value));
break;
case 4:
basketItems.get(row).setTotalPrice(Double.parseDouble((String) value));
break;
}
}