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; } }
原文地址:http://blog.csdn.net/bear_huangzhen/article/details/24692881