package project02_Order_management.util;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
/**
* 一个JTable工具类 <br>
* 进行初始化表数据
*
* @author MartinDong
*
*/
public class TableUtil {
/**
* 声明table控件
*/
private static JTable jTable;
/**
* 初始化缺省的数据模型
*/
private static DefaultTableModel dtm;
/**
* 初始化JTable控件
*
* @param rst
* 传入的结果集
* @param columnNames
* 传入的表格的表头
* @return 返回jtable控件实体
*/
public static JTable initTable(ResultSet rst, String[] columnNames) {
dtm = new DefaultTableModel(initDate(rst, columnNames), columnNames) {
public boolean isCellEditable(int row, int column) {
return false;
}
};
jTable = new JTable(dtm);
return jTable;
}
/**
* 初始化缺省的数据模型
*
* @param rst
* 传入的结果集
* @param columnNames
* 传入的表格的表头
* @return 返回二维数据
*/
public static Object[][] initDate(ResultSet rst, String[] columnNames) {
Object[][] rowDate = null;
if (rst != null) {
// 移动光标到最后一行的ResultSet对象。为了获取所有的数据行
try {
rst.last();
rowDate = new Object[rst.getRow()][columnNames.length];
int index = 0;
// 移到第一条数据韦德是后面的遍历
rst.first();
// 由于需要遍历从第一个,所以先从第一条记录向上移动一行数据
rst.previous();
while (rst.next()) {
for (int j = 0; j < columnNames.length; j++) {
rowDate[index][j] = rst.getObject(j + 1);
}
index++;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return rowDate;
}
}
Jtable简单的封装使用
最新推荐文章于 2021-12-10 10:52:14 发布