package com.lingnan.supermarket.table; // 声明当前类所在的包 import java.util.List; // 导入List接口,用于表示列表 import java.util.Vector; // 导入Vector类,用于实现可增长的对象数组 import javax.swing.table.AbstractTableModel; // 导入AbstractTableModel类,用于创建表格模型 import com.lingnan.supermarket.dto.Production; // 导入Production类,表示产品数据传输对象 import com.lingnan.supermarket.dto.User; // 导入User类,表示用户数据传输对象 import com.lingnan.supermarket.dao.UserService; // 导入UserService接口,用于用户数据访问 import com.lingnan.supermarket.dao.impl.*; // 导入所有实现类,可能用于数据访问层的具体实现 public class ProdCatalogTM extends AbstractTableModel{ // 定义一个类,继承自AbstractTableModel,用于产品目录的表格数据模型 private String [] columnName = {"类别id","类别名称","商品id","商品名称"}; // 定义列名数组,用于表格的列标题 private productionImpl prodDao = new productionImpl(); // 创建productionImpl实例,用于操作产品数据 private Vector prods; // 声明一个Vector,用于存储产品列表 public void all() { // 查找全部数据 prods = prodDao.findAllproduction(); // 调用findAllproduction方法,获取所有产品数据 } public void ById2(Production p) { // 根据类别id查找数据 prods = prodDao.findProductionById2(p.getId2()); // 调用findProductionById2方法,根据类别id获取产品数据 } @Override public int getRowCount() { return prods.size(); // 返回产品列表的大小,即表格的行数 } @Override public int getColumnCount() { return columnName.length; // 返回列名数组的长度,即表格的列数 } @Override public Object getValueAt(int rowIndex, int columnIndex) { Production prod = prods.get(rowIndex); // 获取指定行的产品对象 // 以下注释掉的是打印语句,用于调试 /*System.out.println( "id="+users.get(rowIndex).getId()); System.out.println("rowIndex"+rowIndex); System.out.println("columnIndex"+columnIndex);*/ if(columnIndex==0) { return prod.getId2(); // 返回类别id }else if(columnIndex==1) { return prod.getName2(); // 返回类别名称 }else if(columnIndex==2) { return prod.getId(); // 返回商品id }else if(columnIndex==3) { return prod.getName(); // 返回商品名称 }else { return null; // 如果列索引不匹配,返回null } } @Override public String getColumnName(int column) { return columnName[column]; // 返回指定列的列名 } }