|
|
|
|
@ -0,0 +1,76 @@
|
|
|
|
|
package flowershop.view;
|
|
|
|
|
|
|
|
|
|
import javax.swing.table.AbstractTableModel;
|
|
|
|
|
|
|
|
|
|
//购物车表格模型
|
|
|
|
|
public class CartTableModel extends AbstractTableModel {
|
|
|
|
|
|
|
|
|
|
// 表格列名columnNames
|
|
|
|
|
private String[] columnNames = { "编号", "花卉名", "单支价格", "数量", "应付金额" };
|
|
|
|
|
|
|
|
|
|
// 表格中数据保存在data二维数组中
|
|
|
|
|
private Object[][] data = null;
|
|
|
|
|
|
|
|
|
|
public CartTableModel(Object[][] data) {
|
|
|
|
|
this.data = data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 返回列数
|
|
|
|
|
@Override
|
|
|
|
|
public int getColumnCount() {
|
|
|
|
|
return columnNames.length;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 返回行数
|
|
|
|
|
@Override
|
|
|
|
|
public int getRowCount() {
|
|
|
|
|
return data.length;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获得某行某列的数据,而数据保存在对象数组data中
|
|
|
|
|
@Override
|
|
|
|
|
public Object getValueAt(int rowIndex, int columnIndex) {
|
|
|
|
|
return data[rowIndex][columnIndex];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String getColumnName(int columnIndex) {
|
|
|
|
|
return columnNames[columnIndex];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean isCellEditable(int rowIndex, int columnIndex) {
|
|
|
|
|
// 数量列可以修改
|
|
|
|
|
if (columnIndex == 3) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
|
|
|
|
|
// 只允许修改数量列
|
|
|
|
|
if (columnIndex != 3) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
// 从表中获得修改之后的商品数量,从表而来的数据都String类型
|
|
|
|
|
int quantity = new Integer((String) aValue);
|
|
|
|
|
// 商品数量不能小于0
|
|
|
|
|
if (quantity < 0) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// 更新数量列
|
|
|
|
|
data[rowIndex][3] = quantity;
|
|
|
|
|
// 计算商品应付金额
|
|
|
|
|
double price = (double) data[rowIndex][2];
|
|
|
|
|
double totalPrice = price * quantity;
|
|
|
|
|
// 更新商品应付金额列
|
|
|
|
|
data[rowIndex][4] = new Double(totalPrice);
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|