J2se(7)
------JTable综合增删改查
1、创建工程
2、创建窗体类
3、设置窗体类的布局方式为: absoluteLayout
4、在窗体类中,放置JScrollPane
5、在JScrollPane中,放入一个jtable
6、删除JTable的数据模型
7、编写一个Dao类,用于连接数据库,在类中编写一个getData方法,用于返回所有的数据(ResultSet)
8、在窗体类方法中,创建数据访问类Dao的实例,并且通过该方法,得到ResultSet
9、编写JTable的数据模型类
A、编写类继承于AbstractTableModel(数据模型类的方法都是由系统自动调用)
B、重写类中的三个方法
getColumnCount();---得到总列数
getRowCount();--得到总行数
getValueAt();--得到jtable中每一行每一列要显示的内容
10、在数据模型类中,定义两个属性
private ResultSet rs;
private ResultSetMetaData rsmd; //表头
11、在数据模型类中,定义一个带参的构造方法,参数是ResultSet,利用这个参数,完成第10步两个属性的初始化
public MyTableModel(ResultSet rs){
try{
this.rs = rs;
this.rsmd = rs.getMetaData();
}catch(Exception ex){
.....
}
}
12、在getColumnCount()方法,得到ResultSet中的总列数(即为JTable要显示的总列数)
try{
return rsmd.getColumnCount();
}catch(){
}
return 0;
13、在getRowCount()方法中,得到ResultSet中的总行数(即为jtable要显示的总行数)
try{
rs.last();//让指针,指向数据集中的最后一位
return rs.getRow();//返回最后一行的行号
}catch(){
}
return 0;
14、在getValueAt(int rowIndex,int colIndex)
方法中,分别取到数据集中的每一行,每一列的值,赋值给JTable中的每一行,每一列
try{
rs.absolute(rowIndex+1); //行的下标+1
return rs.getObject(colIndex+1);
//取得rs中当前行,指定列的值,赋值到 Jtable中的指定行,指定列
}catch(){
}
return null;
15、在窗体中,创建数据模型,调用带参的构造方法,并且,把第8步,得到的数据结果传递进去
16、给jtable绑定数据模型
jtable1.setModel(mt);