JTable的模型

时间:2023-03-09 16:49:34
JTable的模型

2018-11-04 23:15:21开始写


模型类

 import javax.swing.table.DefaultTableModel;//导入包

 public class LocalTableModel extends DefaultTableModel {//继承
Class[] types = new Class[] {java.lang.String.class, java.lang.String.class};// 表头的类类型
boolean[] canEdit = new boolean[] {false, false};// 表头不可编辑
public LocalTableModel() {//无参构造函数 表格模型中的表头
super(new Object[][] {}, new String[] {"用户ID", "用户头像"});//第一个参数是表数据,第二个参数是一维数组,元素的表头
}
public Class getColumnClass(int columnIndex) {// 获得表头的类类型
return types[columnIndex];//返回java.lang.String.class
}
public boolean isCellEditable(int rowIndex, int columnIndex) {// 表头是否可编辑
return canEdit[columnIndex];//返回false
}
}

模型使用

 JTable table;// 表格模型
ProductTableModel productModel = new ProductTableModel();// 商品信息表模板
table = new JTable(productModel);//实例化JTable对象,参数是表格模板
scrollPane.setViewportView(table);//添加到滚动面板中显示JTable
productModel.setRowCount(0);//清除表格模型中的原有行
JDBCUtil util = new JDBCUtil();//创建Java数据库连接工具包类对象
List<Product> list = util.getProductInfo();//用来存储信息的集合
for (int i = 0; i < list.size(); i++) {//遍历一遍list(挨个访问一次)
Product product = (Product) list.get(i);//通过列表的get方法获得第i个JavaBean对象 //model是JTable的模型,调用addRow方法,参数是一维数组,数组元素是JavaBean中的变量也是数据表中的字段值,
//且是通过JavaBean的get方法获得,最后添加到JTable中
productModel.addRow(new Object[] { product.getId(), product.getListID(), product.getProductID(), product.getSocket() });
}

选择事件

int row = table.getSelectedRow();//选择某一行

userID = (String) table.getValueAt(row, 0);//获得某一行的第一个值


谢谢、Thank you、Salamat Do(撒拉玛特朵)、あリがCám o*n(嘉蒙)とゥ(阿里嘎都)、감사합니다 (勘三哈咪瘩)、terima Kasih(得力马卡系)、kob-khun(寇布库恩)、dhanyavaad(达尼阿瓦德)、toda(透达)、te?ekkür ederim(特谢库尔埃戴里姆)、Dzie,kuje(以库以而)、Spasibo(思巴喜柏)、Danke(但可)、shokran(休克朗)、Obrigada(欧布哩嘎搭)、dank u(当Q)、Merci(梅呵西)、Gracias(格拉喜亚思)、Grazie(格啦姬)、Благодарности、Tak、Kiitos、Díky、Hvala、Mul?umesc、Takk、Ευχαριστ