|
|
|
@ -1,87 +1,99 @@
|
|
|
|
|
package com.lingnan.supermarket.table; // 定义包名
|
|
|
|
|
package com.lingnan.supermarket.table;
|
|
|
|
|
|
|
|
|
|
import com.lingnan.supermarket.dao.impl.productionImpl;
|
|
|
|
|
import com.lingnan.supermarket.dto.Production;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Vector;
|
|
|
|
|
|
|
|
|
|
import javax.swing.JFrame;
|
|
|
|
|
import javax.swing.table.AbstractTableModel;
|
|
|
|
|
import java.util.Vector;
|
|
|
|
|
|
|
|
|
|
// 定义InTableModel类,继承自AbstractTableModel
|
|
|
|
|
public class InTableModel extends AbstractTableModel {
|
|
|
|
|
|
|
|
|
|
// 列名数组
|
|
|
|
|
private String[] columnName = {"id", "名称", "数量", "单价", "价格", "保质期", "类别", "供应商id"};
|
|
|
|
|
import com.lingnan.supermarket.dto.InOrder;
|
|
|
|
|
|
|
|
|
|
import com.lingnan.supermarket.dto.Production;
|
|
|
|
|
import com.lingnan.supermarket.dto.User;
|
|
|
|
|
import com.lingnan.supermarket.dao.UserService;
|
|
|
|
|
import com.lingnan.supermarket.dao.impl.*;
|
|
|
|
|
import com.lingnan.supermarket.dialog.InDialog;
|
|
|
|
|
|
|
|
|
|
// 声明生产实现类的实例
|
|
|
|
|
private productionImpl prodDao = new productionImpl();
|
|
|
|
|
|
|
|
|
|
// 用于存储Production对象的向量
|
|
|
|
|
private Vector<Production> v;
|
|
|
|
|
|
|
|
|
|
// 用于存储选中记录的id
|
|
|
|
|
String id;
|
|
|
|
|
public class InTableModel extends AbstractTableModel{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String [] columnName = {"id","名称","数量","单价","价格","保质期","类别","供应商id"};
|
|
|
|
|
|
|
|
|
|
private productionImpl prodDao = new productionImpl();
|
|
|
|
|
|
|
|
|
|
private Vector<Production> v;
|
|
|
|
|
|
|
|
|
|
// 构造方法,接收一个Production的向量作为参数
|
|
|
|
|
|
|
|
|
|
String id ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public InTableModel(Vector<Production> v) {
|
|
|
|
|
System.out.println("调用InTableModel里面的构造函数");
|
|
|
|
|
this.v = v; // 将传入的向量赋值给实例变量
|
|
|
|
|
System.out.println("调用imtablemodel里面的构造函数");
|
|
|
|
|
this.v=v;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 返回表格行数
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public int getRowCount() {
|
|
|
|
|
return v.size(); // 向量的大小即为行数
|
|
|
|
|
return v.size();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 计算并返回所有商品的总价格
|
|
|
|
|
|
|
|
|
|
public Float getAllPrice() {
|
|
|
|
|
Float allPrice = (float) 0; // 初始化总价格为0
|
|
|
|
|
for (Production p : v) { // 遍历每个Production对象
|
|
|
|
|
allPrice += p.getPrice(); // 累加单个产品的价格
|
|
|
|
|
Float allPrice=(float) 0;
|
|
|
|
|
for(Production p:v) {
|
|
|
|
|
allPrice+=p.getPrice();
|
|
|
|
|
}
|
|
|
|
|
return allPrice; // 返回总价格
|
|
|
|
|
return allPrice;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 返回列数
|
|
|
|
|
@Override
|
|
|
|
|
public int getColumnCount() {
|
|
|
|
|
return columnName.length; // 列数为列名数组的长度
|
|
|
|
|
public int getColumnCount() {
|
|
|
|
|
return columnName.length;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取指定单元格的值
|
|
|
|
|
@Override
|
|
|
|
|
public Object getValueAt(int rowIndex, int columnIndex) {
|
|
|
|
|
Production p = v.get(rowIndex); // 获取行索引对应的Production对象
|
|
|
|
|
id = p.getId(); // 获取产品ID
|
|
|
|
|
// 根据列索引返回相应的属性值
|
|
|
|
|
if (columnIndex == 0) {
|
|
|
|
|
return p.getId(); // 返回ID
|
|
|
|
|
} else if (columnIndex == 1) {
|
|
|
|
|
return p.getName(); // 返回名称
|
|
|
|
|
} else if (columnIndex == 2) {
|
|
|
|
|
return p.getSum(); // 返回数量
|
|
|
|
|
} else if (columnIndex == 3) {
|
|
|
|
|
return p.getInPrice(); // 返回单价
|
|
|
|
|
} else if (columnIndex == 4) {
|
|
|
|
|
return p.getPrice(); // 返回价格
|
|
|
|
|
} else if (columnIndex == 5) {
|
|
|
|
|
return p.getLife(); // 返回保质期
|
|
|
|
|
} else if (columnIndex == 6) {
|
|
|
|
|
return p.getName2() + p.getId2(); // 返回类别
|
|
|
|
|
} else if (columnIndex == 7) {
|
|
|
|
|
return p.getSupplyId(); // 返回供应商ID
|
|
|
|
|
} else {
|
|
|
|
|
return null; // 其他情况返回null
|
|
|
|
|
Production p = v.get(rowIndex);
|
|
|
|
|
/* System.out.println( "id="+users.get(rowIndex).getId());
|
|
|
|
|
System.out.println("rowIndex"+rowIndex);
|
|
|
|
|
System.out.println("columnIndex"+columnIndex);*/
|
|
|
|
|
id=p.getId();
|
|
|
|
|
if(columnIndex==0) {
|
|
|
|
|
return p.getId();
|
|
|
|
|
}else if(columnIndex==1) {
|
|
|
|
|
return p.getName();
|
|
|
|
|
}else if(columnIndex==2) {
|
|
|
|
|
return p.getSum();
|
|
|
|
|
}else if(columnIndex==3) {
|
|
|
|
|
return p.getInPrice() ;
|
|
|
|
|
}else if(columnIndex==4) {
|
|
|
|
|
return p.getPrice() ;
|
|
|
|
|
}else if(columnIndex==5) {
|
|
|
|
|
return p.getLife();
|
|
|
|
|
}else if(columnIndex==6) {
|
|
|
|
|
return p.getName2()+p.getId2();
|
|
|
|
|
}else if(columnIndex==7) {
|
|
|
|
|
return p.getSupplyId();
|
|
|
|
|
}else {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 返回要修改或删除的记录的ID
|
|
|
|
|
public String getId() {
|
|
|
|
|
return id; // 返回当前选中记录的ID
|
|
|
|
|
|
|
|
|
|
public String getId() { /*返回要修改或删除的记录*/
|
|
|
|
|
return id;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 返回指定列的列名
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String getColumnName(int column) {
|
|
|
|
|
return columnName[column]; // 返回列名
|
|
|
|
|
return columnName[column];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|