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簡單的封裝使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.